START: ptest-runner
2025-04-11T01:35
+ id -u glib2-test
id: 'glib2-test': no such user
+ useradd glib2-test
+ cd /tmp
+ su glib2-test -c 'G_TEST_TMPDIR=`readlink -f /tmp` gnome-desktop-testing-runner glib'
Running test: glib/g-file.test
TAP version 14
# random seed: R02Sb72dbdb56309aec8f015fbcd4af52698
1..8
# Start of g-file tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /g-file/test_g_file_new_null
ok 2 /g-file/test_g_file_new_for_path
ok 3 /g-file/test_g_file_new_for_uri
ok 4 /g-file/test_g_file_dup
ok 5 /g-file/test_g_file_get_parse_name_utf8
file:///var/volatile/tmp/test-tmp-glib_g-file.test-HBWX42
file:///var/volatile/tmp
file:///tmp
file:////UTF-8%20p%C5%99%C3%ADli%C5%A1%20%C5%BElu%C5%A5ou%C4%8Dk%C3%BD%20k%C5%AF%C5%88
file:///UTF-8%20p%C5%99%C3%ADli%C5%A1%20%C5%BElu%C5%A5ou%C4%8Dk%C3%BD%20k%C5%AF%C5%88
ok 6 /g-file/test_g_file_new_for_commandline_arg
/dir1 /dir1/dir2/dir3/
/dir1/ /dir1/dir2/dir3/
/dir1 /dir1/dir2/dir3
/dir1/ /dir1/dir2/dir3
/tmp/ /something/
/dir1/dir2 /dir1/
//dir1/new //dir1/new/dir2/dir3
/dir/UTF-8 p??li? ?lu?ou?k? k?? /dir/UTF-8 p??li? ?lu?ou?k? k??/dir2
file:///dir1 file:///dir1/dir2/dir3/
file:///dir1/ file:///dir1/dir2/dir3/
file:///dir1 file:///dir1/dir2/dir3
file:///dir1/ file:///dir1/dir2/dir3
file:///tmp/ file:///something/
file:///dir1/dir2 file:///dir1/
file:////dir1/new file:////dir1/new/dir2/dir3
file:///dir/UTF-8%20p%C5%99%C3%ADli%C5%A1%20%C5%BElu%C5%A5ou%C4%8Dk%C3%BD%20k%C5%AF%C5%88 file:///dir/UTF-8%20p%C5%99%C3%ADli%C5%A1%20%C5%BElu%C5%A5ou%C4%8Dk%C3%BD%20k%C5%AF%C5%88/dir2
ok 7 /g-file/test_g_file_has_prefix
ok 8 /g-file/test_g_file_get_parent_child
# End of g-file tests
PASS: glib/g-file.test
Running test: glib/task.test
TAP version 14
# random seed: R02S8e082a5eaf18d5a4462a35edaf1c9794
1..36
# Start of gtask tests
ok 1 /gtask/basic
ok 2 /gtask/error
ok 3 /gtask/error-literal
ok 4 /gtask/error-literal-from-variable
ok 5 /gtask/return-from-same-iteration
ok 6 /gtask/return-from-toplevel
ok 7 /gtask/return-from-anon-thread
ok 8 /gtask/return-from-wrong-thread
ok 9 /gtask/no-callback
ok 10 /gtask/report-error
ok 11 /gtask/priority
ok 12 /gtask/name
ok 13 /gtask/static-name
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1608
ok 14 /gtask/asynchronous-cancellation
ok 15 /gtask/check-cancellable
ok 16 /gtask/return-if-cancelled
ok 17 /gtask/run-in-thread
ok 18 /gtask/run-in-thread-sync
ok 19 /gtask/run-in-thread-priority
ok 20 /gtask/run-in-thread-nested
ok 21 /gtask/run-in-thread-overflow
# slow test /gtask/run-in-thread-overflow executed in 0.51 secs
# GLib-GIO-DEBUG: GTask 0x55c739f06ed0 (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
# GLib-GIO-DEBUG: GTask 0x55c739f05f10 (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 22 /gtask/return-on-cancel
# GLib-GIO-DEBUG: GTask 0x55c739f06260 (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
# GLib-GIO-DEBUG: GTask 0x55c739f049d0 (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 23 /gtask/return-on-cancel-sync
ok 24 /gtask/return-on-cancel-atomic
ok 25 /gtask/return-pointer
ok 26 /gtask/return-value
ok 27 /gtask/return-prefixed-error
ok 28 /gtask/object-keepalive
ok 29 /gtask/legacy-error
ok 30 /gtask/finalize-without-return
# Start of name tests
ok 31 /gtask/name/macro-wrapper
# End of name tests
# Start of return tests
ok 32 /gtask/return/error-first
ok 33 /gtask/return/value-first
# Start of in-idle tests
ok 34 /gtask/return/in-idle/error-first
ok 35 /gtask/return/in-idle/value-first
# End of in-idle tests
# End of return tests
# Start of attach-source tests
# /gtask/attach-source/set-name summary: Test that attaching a source to a task will set the source?s name if unset
ok 36 /gtask/attach-source/set-name
# End of attach-source tests
# End of gtask tests
PASS: glib/task.test
Running test: glib/utf8-validate.test
TAP version 14
# random seed: R02S6b03ff848a76ff6e1a062056844fe1db
1..238
# Start of utf8 tests
# Vector 0
# Vector 1
# Vector 2
# Vector 3
# Vector 4
# Vector 5
# Vector 6
# Vector 7
# Vector 8
# Vector 9
# Vector 10
# Vector 11
# Vector 12
# Vector 13
# Vector 14
# Vector 15
# Vector 16
# Vector 17
# Vector 18
# Vector 19
# Vector 20
# Vector 21
# Vector 22
# Vector 23
# Vector 24
# Vector 25
# Vector 26
# Vector 27
ok 1 /utf8/get-char-validated
# Start of validate tests
ok 2 /utf8/validate/0
ok 3 /utf8/validate/1
ok 4 /utf8/validate/2
ok 5 /utf8/validate/3
ok 6 /utf8/validate/4
ok 7 /utf8/validate/5
ok 8 /utf8/validate/6
ok 9 /utf8/validate/7
ok 10 /utf8/validate/8
ok 11 /utf8/validate/9
ok 12 /utf8/validate/10
ok 13 /utf8/validate/11
ok 14 /utf8/validate/12
ok 15 /utf8/validate/13
ok 16 /utf8/validate/14
ok 17 /utf8/validate/15
ok 18 /utf8/validate/16
ok 19 /utf8/validate/17
ok 20 /utf8/validate/18
ok 21 /utf8/validate/19
ok 22 /utf8/validate/20
ok 23 /utf8/validate/21
ok 24 /utf8/validate/22
ok 25 /utf8/validate/23
ok 26 /utf8/validate/24
ok 27 /utf8/validate/25
ok 28 /utf8/validate/26
ok 29 /utf8/validate/27
ok 30 /utf8/validate/28
ok 31 /utf8/validate/29
ok 32 /utf8/validate/30
ok 33 /utf8/validate/31
ok 34 /utf8/validate/32
ok 35 /utf8/validate/33
ok 36 /utf8/validate/34
ok 37 /utf8/validate/35
ok 38 /utf8/validate/36
ok 39 /utf8/validate/37
ok 40 /utf8/validate/38
ok 41 /utf8/validate/39
ok 42 /utf8/validate/40
ok 43 /utf8/validate/41
ok 44 /utf8/validate/42
ok 45 /utf8/validate/43
ok 46 /utf8/validate/44
ok 47 /utf8/validate/45
ok 48 /utf8/validate/46
ok 49 /utf8/validate/47
ok 50 /utf8/validate/48
ok 51 /utf8/validate/49
ok 52 /utf8/validate/50
ok 53 /utf8/validate/51
ok 54 /utf8/validate/52
ok 55 /utf8/validate/53
ok 56 /utf8/validate/54
ok 57 /utf8/validate/55
ok 58 /utf8/validate/56
ok 59 /utf8/validate/57
ok 60 /utf8/validate/58
ok 61 /utf8/validate/59
ok 62 /utf8/validate/60
ok 63 /utf8/validate/61
ok 64 /utf8/validate/62
ok 65 /utf8/validate/63
ok 66 /utf8/validate/64
ok 67 /utf8/validate/65
ok 68 /utf8/validate/66
ok 69 /utf8/validate/67
ok 70 /utf8/validate/68
ok 71 /utf8/validate/69
ok 72 /utf8/validate/70
ok 73 /utf8/validate/71
ok 74 /utf8/validate/72
ok 75 /utf8/validate/73
ok 76 /utf8/validate/74
ok 77 /utf8/validate/75
ok 78 /utf8/validate/76
ok 79 /utf8/validate/77
ok 80 /utf8/validate/78
ok 81 /utf8/validate/79
ok 82 /utf8/validate/80
ok 83 /utf8/validate/81
ok 84 /utf8/validate/82
ok 85 /utf8/validate/83
ok 86 /utf8/validate/84
ok 87 /utf8/validate/85
ok 88 /utf8/validate/86
ok 89 /utf8/validate/87
ok 90 /utf8/validate/88
ok 91 /utf8/validate/89
ok 92 /utf8/validate/90
ok 93 /utf8/validate/91
ok 94 /utf8/validate/92
ok 95 /utf8/validate/93
ok 96 /utf8/validate/94
ok 97 /utf8/validate/95
ok 98 /utf8/validate/96
ok 99 /utf8/validate/97
ok 100 /utf8/validate/98
ok 101 /utf8/validate/99
ok 102 /utf8/validate/100
ok 103 /utf8/validate/101
ok 104 /utf8/validate/102
ok 105 /utf8/validate/103
ok 106 /utf8/validate/104
ok 107 /utf8/validate/105
ok 108 /utf8/validate/106
ok 109 /utf8/validate/107
ok 110 /utf8/validate/108
ok 111 /utf8/validate/109
ok 112 /utf8/validate/110
ok 113 /utf8/validate/111
ok 114 /utf8/validate/112
ok 115 /utf8/validate/113
ok 116 /utf8/validate/114
ok 117 /utf8/validate/115
ok 118 /utf8/validate/116
ok 119 /utf8/validate/117
ok 120 /utf8/validate/118
ok 121 /utf8/validate/119
ok 122 /utf8/validate/120
ok 123 /utf8/validate/121
ok 124 /utf8/validate/122
ok 125 /utf8/validate/123
ok 126 /utf8/validate/124
ok 127 /utf8/validate/125
ok 128 /utf8/validate/126
ok 129 /utf8/validate/127
ok 130 /utf8/validate/128
ok 131 /utf8/validate/129
ok 132 /utf8/validate/130
ok 133 /utf8/validate/131
ok 134 /utf8/validate/132
ok 135 /utf8/validate/133
ok 136 /utf8/validate/134
ok 137 /utf8/validate/135
ok 138 /utf8/validate/136
ok 139 /utf8/validate/137
ok 140 /utf8/validate/138
ok 141 /utf8/validate/139
ok 142 /utf8/validate/140
ok 143 /utf8/validate/141
ok 144 /utf8/validate/142
ok 145 /utf8/validate/143
ok 146 /utf8/validate/144
ok 147 /utf8/validate/145
ok 148 /utf8/validate/146
ok 149 /utf8/validate/147
ok 150 /utf8/validate/148
ok 151 /utf8/validate/149
ok 152 /utf8/validate/150
ok 153 /utf8/validate/151
ok 154 /utf8/validate/152
ok 155 /utf8/validate/153
ok 156 /utf8/validate/154
ok 157 /utf8/validate/155
ok 158 /utf8/validate/156
ok 159 /utf8/validate/157
ok 160 /utf8/validate/158
ok 161 /utf8/validate/159
ok 162 /utf8/validate/160
ok 163 /utf8/validate/161
ok 164 /utf8/validate/162
ok 165 /utf8/validate/163
ok 166 /utf8/validate/164
ok 167 /utf8/validate/165
ok 168 /utf8/validate/166
ok 169 /utf8/validate/167
ok 170 /utf8/validate/168
ok 171 /utf8/validate/169
ok 172 /utf8/validate/170
ok 173 /utf8/validate/171
ok 174 /utf8/validate/172
ok 175 /utf8/validate/173
ok 176 /utf8/validate/174
ok 177 /utf8/validate/175
ok 178 /utf8/validate/176
ok 179 /utf8/validate/177
ok 180 /utf8/validate/178
ok 181 /utf8/validate/179
ok 182 /utf8/validate/180
ok 183 /utf8/validate/181
ok 184 /utf8/validate/182
ok 185 /utf8/validate/183
ok 186 /utf8/validate/184
ok 187 /utf8/validate/185
ok 188 /utf8/validate/186
ok 189 /utf8/validate/187
ok 190 /utf8/validate/188
ok 191 /utf8/validate/189
ok 192 /utf8/validate/190
ok 193 /utf8/validate/191
ok 194 /utf8/validate/192
ok 195 /utf8/validate/193
ok 196 /utf8/validate/194
ok 197 /utf8/validate/195
ok 198 /utf8/validate/196
ok 199 /utf8/validate/197
ok 200 /utf8/validate/198
ok 201 /utf8/validate/199
ok 202 /utf8/validate/200
ok 203 /utf8/validate/201
ok 204 /utf8/validate/202
ok 205 /utf8/validate/203
ok 206 /utf8/validate/204
ok 207 /utf8/validate/205
ok 208 /utf8/validate/206
ok 209 /utf8/validate/207
ok 210 /utf8/validate/208
ok 211 /utf8/validate/209
ok 212 /utf8/validate/210
ok 213 /utf8/validate/211
ok 214 /utf8/validate/212
ok 215 /utf8/validate/213
ok 216 /utf8/validate/214
ok 217 /utf8/validate/215
ok 218 /utf8/validate/216
ok 219 /utf8/validate/217
ok 220 /utf8/validate/218
ok 221 /utf8/validate/219
ok 222 /utf8/validate/220
ok 223 /utf8/validate/221
ok 224 /utf8/validate/222
ok 225 /utf8/validate/223
ok 226 /utf8/validate/224
ok 227 /utf8/validate/225
ok 228 /utf8/validate/226
ok 229 /utf8/validate/227
ok 230 /utf8/validate/228
ok 231 /utf8/validate/229
ok 232 /utf8/validate/230
ok 233 /utf8/validate/231
ok 234 /utf8/validate/232
ok 235 /utf8/validate/233
ok 236 /utf8/validate/234
ok 237 /utf8/validate/235
ok 238 /utf8/validate/236
# End of validate tests
# End of utf8 tests
PASS: glib/utf8-validate.test
Running test: glib/portal-support-none.test
TAP version 14
# random seed: R02S521074ba5d15af9d2e64be0bec25b701
1..1
# Start of portal-support tests
ok 1 /portal-support/none
# End of portal-support tests
PASS: glib/portal-support-none.test
Running test: glib/giomodule.test
TAP version 14
# random seed: R02Scd349c3964b3448169b135c2e5d7b68c
1..3
# Start of giomodule tests
ok 1 /giomodule/extension-point
ok 2 /giomodule/module-scan-all
ok 3 /giomodule/module-scan-all-with-scope
# End of giomodule tests
PASS: glib/giomodule.test
Running test: glib/date.test
TAP version 14
# random seed: R02S1c3c24f2b94d33422917c4b2e8537075
1..121
# Start of date tests
ok 1 /date/basic
ok 2 /date/empty
ok 3 /date/dmy
ok 4 /date/julian
ok 5 /date/compare
ok 6 /date/dates
ok 7 /date/strftime
ok 8 /date/two-digit-years
ok 9 /date/parse
ok 10 /date/parse_locale_change
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=793550
ok 11 /date/month_substring
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=749206
ok 12 /date/month_names # SKIP libc doesn’t support all alternative month names
ok 13 /date/clamp
ok 14 /date/order
ok 15 /date/copy
# Vector 0: 0000-00-00, invalid
# Vector 1: 0001-01-01, valid
# Vector 2: 0000-01-01, invalid
# Vector 3: 2000-02-30, invalid
# Vector 4: 2000-02-29, valid
# Vector 5: 2001-02-29, invalid
# Vector 6: 65535-01-01, valid
ok 16 /date/valid-dmy
# Start of parse tests
# Test 0
# Test 1
ok 17 /date/parse/invalid
# End of parse tests
# Start of year tests
ok 18 /date/year/1
ok 19 /date/year/2
ok 20 /date/year/3
ok 21 /date/year/4
ok 22 /date/year/5
ok 23 /date/year/6
ok 24 /date/year/7
ok 25 /date/year/8
ok 26 /date/year/9
ok 27 /date/year/10
ok 28 /date/year/11
ok 29 /date/year/12
ok 30 /date/year/13
ok 31 /date/year/14
ok 32 /date/year/98
ok 33 /date/year/99
ok 34 /date/year/100
ok 35 /date/year/101
ok 36 /date/year/102
ok 37 /date/year/103
ok 38 /date/year/397
ok 39 /date/year/398
ok 40 /date/year/399
ok 41 /date/year/400
ok 42 /date/year/401
ok 43 /date/year/402
ok 44 /date/year/403
ok 45 /date/year/404
ok 46 /date/year/405
ok 47 /date/year/406
ok 48 /date/year/1598
ok 49 /date/year/1599
ok 50 /date/year/1600
ok 51 /date/year/1601
ok 52 /date/year/1602
ok 53 /date/year/1650
ok 54 /date/year/1651
ok 55 /date/year/1897
ok 56 /date/year/1898
ok 57 /date/year/1899
ok 58 /date/year/1900
ok 59 /date/year/1901
ok 60 /date/year/1902
ok 61 /date/year/1903
ok 62 /date/year/1961
ok 63 /date/year/1962
ok 64 /date/year/1963
ok 65 /date/year/1964
ok 66 /date/year/1965
ok 67 /date/year/1967
ok 68 /date/year/1968
ok 69 /date/year/1969
ok 70 /date/year/1970
ok 71 /date/year/1971
ok 72 /date/year/1972
ok 73 /date/year/1973
ok 74 /date/year/1974
ok 75 /date/year/1975
ok 76 /date/year/1976
ok 77 /date/year/1977
ok 78 /date/year/1978
ok 79 /date/year/1979
ok 80 /date/year/1980
ok 81 /date/year/1981
ok 82 /date/year/1982
ok 83 /date/year/1983
ok 84 /date/year/1984
ok 85 /date/year/1985
ok 86 /date/year/1986
ok 87 /date/year/1987
ok 88 /date/year/1988
ok 89 /date/year/1989
ok 90 /date/year/1990
ok 91 /date/year/1991
ok 92 /date/year/1992
ok 93 /date/year/1993
ok 94 /date/year/1994
ok 95 /date/year/1995
ok 96 /date/year/1996
ok 97 /date/year/1997
ok 98 /date/year/1998
ok 99 /date/year/1999
ok 100 /date/year/2000
ok 101 /date/year/2001
ok 102 /date/year/2002
ok 103 /date/year/2003
ok 104 /date/year/2004
ok 105 /date/year/2005
ok 106 /date/year/2006
ok 107 /date/year/2007
ok 108 /date/year/2008
ok 109 /date/year/2009
ok 110 /date/year/2010
ok 111 /date/year/2011
ok 112 /date/year/2012
ok 113 /date/year/3000
ok 114 /date/year/3001
ok 115 /date/year/3002
ok 116 /date/year/3998
ok 117 /date/year/3999
ok 118 /date/year/4000
ok 119 /date/year/4001
ok 120 /date/year/4002
ok 121 /date/year/4003
# End of year tests
# End of date tests
PASS: glib/date.test
Running test: glib/binding.test
TAP version 14
# random seed: R02Sdd4ff40853c91997ed2809c4beaf164a
1..19
# Start of binding tests
ok 1 /binding/default
# /binding/canonicalisation summary: Test that bindings set up with non-canonical property names work
ok 2 /binding/canonicalisation
ok 3 /binding/bidirectional
ok 4 /binding/transform
ok 5 /binding/transform-default
ok 6 /binding/transform-closure
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=621782
ok 7 /binding/chain
ok 8 /binding/sync-create
ok 9 /binding/invert-boolean
ok 10 /binding/same-object
ok 11 /binding/unbind
ok 12 /binding/unbind-weak
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1373
ok 13 /binding/unbind-multiple
ok 14 /binding/fail
ok 15 /binding/interface
# /binding/concurrent-unbind summary: Test that unbinding from multiple threads concurrently works correctly
ok 16 /binding/concurrent-unbind
# /binding/concurrent-finalizing summary: Test that finalizing source/target from multiple threads concurrently works correctly
ok 17 /binding/concurrent-finalizing
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2676
ok 18 /binding/dispose-source
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2676
ok 19 /binding/dispose-target
# End of binding tests
PASS: glib/binding.test
Running test: glib/gvariant.test
TAP version 14
# random seed: R02S05fb1b60474d0884a27a42478fa7c600
1..68
# Start of gvariant tests
ok 1 /gvariant/type
ok 2 /gvariant/typeinfo
ok 3 /gvariant/string
ok 4 /gvariant/utf8
ok 5 /gvariant/utf8-new-strings
ok 6 /gvariant/containers
ok 7 /gvariant/format-strings
ok 8 /gvariant/invalid-varargs
ok 9 /gvariant/varargs
ok 10 /gvariant/valist
ok 11 /gvariant/builder-memory
ok 12 /gvariant/hashing
ok 13 /gvariant/byteswap
ok 14 /gvariant/parser
ok 15 /gvariant/parse-failures
ok 16 /gvariant/parse-positional
ok 17 /gvariant/floating
ok 18 /gvariant/bytestring
ok 19 /gvariant/lookup-value
ok 20 /gvariant/lookup
ok 21 /gvariant/compare
ok 22 /gvariant/equal
ok 23 /gvariant/fixed-array
ok 24 /gvariant/check-format-string
ok 25 /gvariant/checksum-basic
ok 26 /gvariant/checksum-nested
ok 27 /gvariant/gbytes
ok 28 /gvariant/print-context
ok 29 /gvariant/error-quark
ok 30 /gvariant/stack-builder-init
ok 31 /gvariant/stack-builder-init-static
ok 32 /gvariant/stack-builder-init-unset
ok 33 /gvariant/stack-dict-init
ok 34 /gvariant/unaligned-construction
# Start of type tests
# Start of string-scan tests
# Start of recursion tests
ok 35 /gvariant/type/string-scan/recursion/tuple
ok 36 /gvariant/type/string-scan/recursion/array
# End of recursion tests
# End of string-scan tests
# End of type tests
# Start of serialiser tests
ok 37 /gvariant/serialiser/maybe
ok 38 /gvariant/serialiser/array
ok 39 /gvariant/serialiser/tuple
ok 40 /gvariant/serialiser/variant
ok 41 /gvariant/serialiser/strings
ok 42 /gvariant/serialiser/byteswap
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1865
# /gvariant/serialiser/children summary: Test that getting a child variant before and after serialisation of the parent works
ok 43 /gvariant/serialiser/children
# Start of fuzz tests
ok 44 /gvariant/serialiser/fuzz/1%
ok 45 /gvariant/serialiser/fuzz/5%
# slow test /gvariant/serialiser/fuzz/5% executed in 1.30 secs
ok 46 /gvariant/serialiser/fuzz/9%
ok 47 /gvariant/serialiser/fuzz/13%
ok 48 /gvariant/serialiser/fuzz/17%
# End of fuzz tests
# End of serialiser tests
# Start of utf8 tests
# Start of subprocess tests
# End of subprocess tests
# End of utf8 tests
# Start of varargs tests
# Start of subprocess tests
# End of subprocess tests
# End of varargs tests
# Start of byteswap tests
# /gvariant/byteswap/non-normal-non-aligned summary: Test that calling g_variant_byteswap() on a variant which is in non-normal form and doesn?t need byteswapping returns the same variant in normal form.
ok 49 /gvariant/byteswap/non-normal-non-aligned
# End of byteswap tests
# Start of parser tests
ok 50 /gvariant/parser/integer-bounds
ok 51 /gvariant/parser/recursion
# Start of recursion tests
ok 52 /gvariant/parser/recursion/typedecls
# /gvariant/parser/recursion/maybes summary: Test that nested maybes are handled correctly when parsing text-form variants
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2782
# Text form 0: @mmmu 5
# Text form 1: @mmmas ['hello']
# Text form 2: @mmmu just just nothing
# Text form 3: @mmmas just just nothing
# Text form 4: @mmmu just nothing
# Text form 5: @mmmas just nothing
# Text form 6: @mmmu nothing
# Text form 7: @mmmas nothing
ok 53 /gvariant/parser/recursion/maybes
# End of recursion tests
# End of parser tests
# Start of parse tests
# Start of subprocess tests
# End of subprocess tests
# End of parse tests
# Start of normal-checking tests
ok 54 /gvariant/normal-checking/tuples
ok 55 /gvariant/normal-checking/array-offsets
ok 56 /gvariant/normal-checking/array-offsets2
ok 57 /gvariant/normal-checking/tuple-offsets
ok 58 /gvariant/normal-checking/tuple-offsets2
ok 59 /gvariant/normal-checking/tuple-offsets3
ok 60 /gvariant/normal-checking/tuple-offsets4
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2840
ok 61 /gvariant/normal-checking/tuple-offsets5
ok 62 /gvariant/normal-checking/empty-object-path
# Start of array-offsets tests
ok 63 /gvariant/normal-checking/array-offsets/overlapped
ok 64 /gvariant/normal-checking/array-offsets/minimal-sized
# End of array-offsets tests
# Start of tuple-offsets tests
ok 65 /gvariant/normal-checking/tuple-offsets/minimal-sized
# End of tuple-offsets tests
# End of normal-checking tests
# Start of recursion-limits tests
ok 66 /gvariant/recursion-limits/variant-in-variant
ok 67 /gvariant/recursion-limits/array-in-variant
# End of recursion-limits tests
# End of gvariant tests
# Start of gvarianttype tests
ok 68 /gvarianttype/hash
# End of gvarianttype tests
PASS: glib/gvariant.test
Running test: glib/signals.test
TAP version 14
# random seed: R02Sc345f79e3095d37f4d51abd34335fc20
1..31
# Start of gobject tests
# Start of signals tests
ok 1 /gobject/signals/all-types
ok 2 /gobject/signals/variant
ok 3 /gobject/signals/destroy-target-object
ok 4 /gobject/signals/generic-marshaller-1
ok 5 /gobject/signals/generic-marshaller-2
ok 6 /gobject/signals/generic-marshaller-enum-return-signed
ok 7 /gobject/signals/generic-marshaller-enum-return-unsigned
ok 8 /gobject/signals/generic-marshaller-int-return
ok 9 /gobject/signals/generic-marshaller-uint-return
ok 10 /gobject/signals/generic-marshaller-interface-return
ok 11 /gobject/signals/custom-marshaller
ok 12 /gobject/signals/connect
ok 13 /gobject/signals/emission-hook
ok 14 /gobject/signals/emitv
ok 15 /gobject/signals/accumulator
# Signal: accumulator-class-first
# Signal: accumulator-class-last
# Signal: accumulator-class-cleanup
# Signal: accumulator-class-first-last
# Signal: accumulator-class-first-last-cleanup
# Signal: accumulator-class-last-cleanup
ok 16 /gobject/signals/accumulator-class
ok 17 /gobject/signals/introspection
ok 18 /gobject/signals/block-handler
ok 19 /gobject/signals/stop-emission
ok 20 /gobject/signals/invocation-hint
ok 21 /gobject/signals/test-disconnection-wrong-object
ok 22 /gobject/signals/clear-signal-handler
# /gobject/signals/lookup summary: Test that g_signal_lookup() works with a variety of inputs.
ok 23 /gobject/signals/lookup
# /gobject/signals/parse-name summary: Test that g_signal_parse_name() works with a variety of inputs.
ok 24 /gobject/signals/parse-name
ok 25 /gobject/signals/is-valid-name
ok 26 /gobject/signals/weak-ref-disconnect
# Start of lookup tests
# /gobject/signals/lookup/invalid summary: Test that g_signal_lookup() emits a warning if looking up an invalid signal name.
ok 27 /gobject/signals/lookup/invalid
# End of lookup tests
# Start of parse-name tests
# /gobject/signals/parse-name/invalid summary: Test that g_signal_parse_name() ignores a variety of invalid inputs.
# Parser input: 
# Parser input: 7zip
# Parser input: invalid:signal
# Parser input: simple-detailed::
# Parser input: simple-detailed:
# Parser input: :
# Parser input: ::
# Parser input: :valid-detail
# Parser input: ::valid-detail
ok 28 /gobject/signals/parse-name/invalid
# End of parse-name tests
# Start of invalid-name tests
# /gobject/signals/invalid-name/colon summary: Check that g_signal_new() rejects invalid signal names.
ok 29 /gobject/signals/invalid-name/colon
# /gobject/signals/invalid-name/first-char summary: Check that g_signal_new() rejects invalid signal names.
ok 30 /gobject/signals/invalid-name/first-char
# /gobject/signals/invalid-name/empty summary: Check that g_signal_new() rejects invalid signal names.
ok 31 /gobject/signals/invalid-name/empty
# End of invalid-name tests
# End of signals tests
# End of gobject tests
PASS: glib/signals.test
Running test: glib/async-splice-output-stream.test
TAP version 14
# random seed: R02S3d32dd176dab579d6f606c975618b197
1..5
# Start of async-splice tests
ok 1 /async-splice/copy-chunks
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 2 /async-splice/copy-chunks-threaded-input
ok 3 /async-splice/copy-chunks-threaded-output
ok 4 /async-splice/copy-chunks-threaded
ok 5 /async-splice/cancelled
# End of async-splice tests
PASS: glib/async-splice-output-stream.test
Running test: glib/sort.test
TAP version 14
# random seed: R02Seea497d4de5170d35393e91a781b7732
1..5
# Start of sort tests
ok 1 /sort/basic
ok 2 /sort/zero-elements
ok 3 /sort/stable
ok 4 /sort/big
ok 5 /sort/deprecated
# End of sort tests
PASS: glib/sort.test
Running test: glib/module-test-library.test
TAP version 14
# random seed: R02S8e73ae4b7f7c2c64d6428a6a5eadd2de
1..3
# Start of module tests
ok 1 /module/basics
# /module/invalid-libtool-archive summary: Test that opening an invalid .la file fails
ok 2 /module/invalid-libtool-archive
# /module/local-binding summary: Test that binding a library's symbols locally does not add them globally
ok 3 /module/local-binding
# End of module tests
PASS: glib/module-test-library.test
Running test: glib/resolver-parsing.test
TAP version 14
# random seed: R02S1cb19b7a0703d2f139663c84e4b6f427
1..21
# Start of gresolver tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/invalid-header/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/invalid-header/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/invalid-header/.dirs/system-config1:/var/volatile/tmp/gresolver/invalid-header/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/invalid-header/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/invalid-header/.dirs/system-data1:/var/volatile/tmp/gresolver/invalid-header/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/invalid-header/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/invalid-header/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/invalid-header/.dirs/runtime
ok 1 /gresolver/invalid-header
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/record-ownership/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/record-ownership/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/record-ownership/.dirs/system-config1:/var/volatile/tmp/gresolver/record-ownership/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/record-ownership/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/record-ownership/.dirs/system-data1:/var/volatile/tmp/gresolver/record-ownership/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/record-ownership/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/record-ownership/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/record-ownership/.dirs/runtime
ok 2 /gresolver/record-ownership
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/system-config1:/var/volatile/tmp/gresolver/unknown-record-type/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/system-data1:/var/volatile/tmp/gresolver/unknown-record-type/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/unknown-record-type/.dirs/runtime
# GLib-GIO-DEBUG: Unrecognized DNS record type 20
ok 3 /gresolver/unknown-record-type
# Start of mx tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/mx/valid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/mx/valid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/mx/valid/.dirs/system-config1:/var/volatile/tmp/gresolver/mx/valid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/mx/valid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/mx/valid/.dirs/system-data1:/var/volatile/tmp/gresolver/mx/valid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/mx/valid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/mx/valid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/mx/valid/.dirs/runtime
ok 4 /gresolver/mx/valid
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/mx/invalid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/mx/invalid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/mx/invalid/.dirs/system-config1:/var/volatile/tmp/gresolver/mx/invalid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/mx/invalid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/mx/invalid/.dirs/system-data1:/var/volatile/tmp/gresolver/mx/invalid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/mx/invalid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/mx/invalid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/mx/invalid/.dirs/runtime
ok 5 /gresolver/mx/invalid
# Start of invalid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/system-config1:/var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/system-data1:/var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/mx/invalid/too-short/.dirs/runtime
ok 6 /gresolver/mx/invalid/too-short
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/system-config1:/var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/system-data1:/var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/mx/invalid/too-short2/.dirs/runtime
ok 7 /gresolver/mx/invalid/too-short2
# End of invalid tests
# End of mx tests
# Start of ns tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/ns/valid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/ns/valid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/ns/valid/.dirs/system-config1:/var/volatile/tmp/gresolver/ns/valid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/ns/valid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/ns/valid/.dirs/system-data1:/var/volatile/tmp/gresolver/ns/valid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/ns/valid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/ns/valid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/ns/valid/.dirs/runtime
ok 8 /gresolver/ns/valid
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/ns/invalid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/ns/invalid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/ns/invalid/.dirs/system-config1:/var/volatile/tmp/gresolver/ns/invalid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/ns/invalid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/ns/invalid/.dirs/system-data1:/var/volatile/tmp/gresolver/ns/invalid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/ns/invalid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/ns/invalid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/ns/invalid/.dirs/runtime
ok 9 /gresolver/ns/invalid
# End of ns tests
# Start of soa tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/soa/valid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/soa/valid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/soa/valid/.dirs/system-config1:/var/volatile/tmp/gresolver/soa/valid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/soa/valid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/soa/valid/.dirs/system-data1:/var/volatile/tmp/gresolver/soa/valid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/soa/valid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/soa/valid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/soa/valid/.dirs/runtime
ok 10 /gresolver/soa/valid
# Start of invalid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/system-config1:/var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/system-data1:/var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/soa/invalid/mname/.dirs/runtime
ok 11 /gresolver/soa/invalid/mname
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/system-config1:/var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/system-data1:/var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/soa/invalid/rname/.dirs/runtime
ok 12 /gresolver/soa/invalid/rname
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/system-config1:/var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/system-data1:/var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/soa/invalid/too-short/.dirs/runtime
ok 13 /gresolver/soa/invalid/too-short
# End of invalid tests
# End of soa tests
# Start of srv tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/srv/valid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/srv/valid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/srv/valid/.dirs/system-config1:/var/volatile/tmp/gresolver/srv/valid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/srv/valid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/srv/valid/.dirs/system-data1:/var/volatile/tmp/gresolver/srv/valid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/srv/valid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/srv/valid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/srv/valid/.dirs/runtime
ok 14 /gresolver/srv/valid
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/srv/invalid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/srv/invalid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/srv/invalid/.dirs/system-config1:/var/volatile/tmp/gresolver/srv/invalid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/srv/invalid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/srv/invalid/.dirs/system-data1:/var/volatile/tmp/gresolver/srv/invalid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/srv/invalid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/srv/invalid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/srv/invalid/.dirs/runtime
ok 15 /gresolver/srv/invalid
# Start of invalid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/system-config1:/var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/system-data1:/var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/srv/invalid/too-short/.dirs/runtime
ok 16 /gresolver/srv/invalid/too-short
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/system-config1:/var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/system-data1:/var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/srv/invalid/too-short2/.dirs/runtime
ok 17 /gresolver/srv/invalid/too-short2
# End of invalid tests
# End of srv tests
# Start of txt tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/txt/valid/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/txt/valid/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/txt/valid/.dirs/system-config1:/var/volatile/tmp/gresolver/txt/valid/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/txt/valid/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/txt/valid/.dirs/system-data1:/var/volatile/tmp/gresolver/txt/valid/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/txt/valid/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/txt/valid/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/txt/valid/.dirs/runtime
ok 18 /gresolver/txt/valid
# Start of valid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/system-config1:/var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/system-data1:/var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/txt/valid/multiple-strings/.dirs/runtime
ok 19 /gresolver/txt/valid/multiple-strings
# End of valid tests
# Start of invalid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/system-config1:/var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/system-data1:/var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/txt/invalid/empty/.dirs/runtime
ok 20 /gresolver/txt/invalid/empty
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/system-config1:/var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/system-data1:/var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gresolver/txt/invalid/overflow/.dirs/runtime
ok 21 /gresolver/txt/invalid/overflow
# End of invalid tests
# End of txt tests
# End of gresolver tests
PASS: glib/resolver-parsing.test
Running test: glib/sleepy-stream.test
TAP version 14
# random seed: R02S5cd55484f2d17ba40c24585792c0ab22
1..2
# Start of filter-stream tests
ok 1 /filter-stream/input
ok 2 /filter-stream/async
# End of filter-stream tests
PASS: glib/sleepy-stream.test
Running test: glib/dump.test
TAP version 14
# random seed: R02S954a498d788795fc910cec28a041c40f
1..4
# Start of dump tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/dump/empty-file/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/dump/empty-file/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/dump/empty-file/.dirs/system-config1:/var/volatile/tmp/dump/empty-file/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/dump/empty-file/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/dump/empty-file/.dirs/system-data1:/var/volatile/tmp/dump/empty-file/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/dump/empty-file/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/dump/empty-file/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/dump/empty-file/.dirs/runtime
ok 1 /dump/empty-file
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/dump/missing-get-type/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/dump/missing-get-type/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/dump/missing-get-type/.dirs/system-config1:/var/volatile/tmp/dump/missing-get-type/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/dump/missing-get-type/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/dump/missing-get-type/.dirs/system-data1:/var/volatile/tmp/dump/missing-get-type/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/dump/missing-get-type/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/dump/missing-get-type/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/dump/missing-get-type/.dirs/runtime
Invalid GType function: 'does_not_exist_get_type'
ok 2 /dump/missing-get-type
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/dump/missing-quark/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/dump/missing-quark/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/dump/missing-quark/.dirs/system-config1:/var/volatile/tmp/dump/missing-quark/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/dump/missing-quark/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/dump/missing-quark/.dirs/system-data1:/var/volatile/tmp/dump/missing-quark/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/dump/missing-quark/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/dump/missing-quark/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/dump/missing-quark/.dirs/runtime
Invalid error quark function: 'does_not_exist_error'
ok 3 /dump/missing-quark
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/dump/basic/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/dump/basic/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/dump/basic/.dirs/system-config1:/var/volatile/tmp/dump/basic/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/dump/basic/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/dump/basic/.dirs/system-data1:/var/volatile/tmp/dump/basic/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/dump/basic/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/dump/basic/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/dump/basic/.dirs/runtime
ok 4 /dump/basic
# End of dump tests
PASS: glib/dump.test
Running test: glib/macros-c-11.test
TAP version 14
# random seed: R02S85aab4556aa086a809bacf4bcd74fa5b
1..4
# Start of C tests
ok 1 /C/standard-11
# End of C tests
# Start of alignof tests
ok 2 /alignof/fallback
# End of alignof tests
# Start of assert tests
ok 3 /assert/static
# End of assert tests
# Start of struct tests
ok 4 /struct/sizeof_member
# End of struct tests
PASS: glib/macros-c-11.test
Running test: glib/slice.test
TAP version 14
# random seed: R02S2283618e5f800e9dd255092797e70527
1..3
# Start of slice tests
ok 1 /slice/copy
ok 2 /slice/chain
ok 3 /slice/allocate
# End of slice tests
PASS: glib/slice.test
Running test: glib/data-output-stream.test
TAP version 14
# random seed: R02S0bb365d755f55d1cb58f7ddf97e477fe
1..7
# Start of data-output-stream tests
ok 1 /data-output-stream/basic
ok 2 /data-output-stream/write-lines-LF
ok 3 /data-output-stream/write-lines-CR
ok 4 /data-output-stream/write-lines-CR-LF
ok 5 /data-output-stream/write-int
ok 6 /data-output-stream/seek
ok 7 /data-output-stream/truncate
# End of data-output-stream tests
PASS: glib/data-output-stream.test
Running test: glib/win32-appinfo.test
TAP version 14
# random seed: R02Sc92dc7d0ee61410328e861a6be50df6f
1..5
# Start of appinfo tests
ok 1 /appinfo/utf16-strfuncs
ok 2 /appinfo/win32-extract-executable
ok 3 /appinfo/win32-rundll32-fixup
ok 4 /appinfo/win32-parse-filename
ok 5 /appinfo/win32-utf16-conversion-fail
# Start of subprocess tests
# End of subprocess tests
# End of appinfo tests
PASS: glib/win32-appinfo.test
Running test: glib/static-link.test
Test disabled because GLIB_TEST_COMPILATION is not set in the env.
If you wish to run this test, set GLIB_TEST_COMPILATION=1 in the env,
and make sure you have glib build dependencies installed, including
meson.
SKIP: glib/static-link.test
Running test: glib/memory-output-stream.test
TAP version 14
# random seed: R02S805f4a1679dd1da3f8fb4d0a9003a715
1..10
# Start of memory-output-stream tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=540423
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=720080
ok 1 /memory-output-stream/truncate
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=540459
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=540461
ok 2 /memory-output-stream/get-data-size
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=605733
ok 3 /memory-output-stream/properties
ok 4 /memory-output-stream/write-bytes
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2471
ok 5 /memory-output-stream/write-null
ok 6 /memory-output-stream/writev
ok 7 /memory-output-stream/writev_nonblocking
ok 8 /memory-output-stream/steal_as_bytes
# Start of seek tests
ok 9 /memory-output-stream/seek/fixed
ok 10 /memory-output-stream/seek/resizable
# End of seek tests
# End of memory-output-stream tests
PASS: glib/memory-output-stream.test
Running test: glib/gsubprocess.test
TAP version 14
# random seed: R02S5dd36f90cbbc2dbe57f2069954f19945
1..84
# Start of gsubprocess tests
ok 1 /gsubprocess/noop
ok 2 /gsubprocess/noop-all-to-null
ok 3 /gsubprocess/noop-no-wait
ok 4 /gsubprocess/noop-stdin-inherit
ok 5 /gsubprocess/search-path
ok 6 /gsubprocess/search-path-from-envp
Executing: glib/gsubprocess.test
ok 7 /gsubprocess/signal
# slow test /gsubprocess/signal executed in 2.90 secs
ok 8 /gsubprocess/exit1
ok 9 /gsubprocess/echo1
ok 10 /gsubprocess/echo-merged
ok 11 /gsubprocess/cat-utf8
ok 12 /gsubprocess/cat-eof
# slow test /gsubprocess/cat-eof executed in 1.00 secs
Executing: glib/gsubprocess.test
ok 13 /gsubprocess/multi1
# slow test /gsubprocess/multi1 executed in 3.01 secs
ok 14 /gsubprocess/communicate
ok 15 /gsubprocess/terminate
# slow test /gsubprocess/terminate executed in 2.98 secs
ok 16 /gsubprocess/fail-initialization
ok 17 /gsubprocess/env
ok 18 /gsubprocess/cwd
ok 19 /gsubprocess/launcher-close
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 20 /gsubprocess/stdout-file
ok 21 /gsubprocess/stdout-fd
ok 22 /gsubprocess/child-setup
# GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
# GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
ok 23 /gsubprocess/launcher-environment
# Start of exit1 tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=786456
ok 24 /gsubprocess/exit1/cancel
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=786456
ok 25 /gsubprocess/exit1/cancel_in_cb
# End of exit1 tests
# Start of communicate tests
ok 26 /gsubprocess/communicate/cancelled
ok 27 /gsubprocess/communicate/async
ok 28 /gsubprocess/communicate/utf8
# hello world
ok 29 /gsubprocess/communicate/no-pipes
ok 30 /gsubprocess/communicate/separate-stderr
ok 31 /gsubprocess/communicate/stdout-only
# hello world
ok 32 /gsubprocess/communicate/stderr-only
ok 33 /gsubprocess/communicate/stdout-silence
ok 34 /gsubprocess/communicate/nothing
# Start of async tests
ok 35 /gsubprocess/communicate/async/cancelled
# hello world
ok 36 /gsubprocess/communicate/async/no-pipes
ok 37 /gsubprocess/communicate/async/separate-stderr
ok 38 /gsubprocess/communicate/async/stdout-only
# hello world
ok 39 /gsubprocess/communicate/async/stderr-only
ok 40 /gsubprocess/communicate/async/stdout-silence
# Start of cancelled tests
ok 41 /gsubprocess/communicate/async/cancelled/no-pipes
ok 42 /gsubprocess/communicate/async/cancelled/separate-stderr
ok 43 /gsubprocess/communicate/async/cancelled/stdout-only
ok 44 /gsubprocess/communicate/async/cancelled/stderr-only
ok 45 /gsubprocess/communicate/async/cancelled/stdout-silence
# End of cancelled tests
# End of async tests
# Start of utf8 tests
ok 46 /gsubprocess/communicate/utf8/cancelled
ok 47 /gsubprocess/communicate/utf8/async
# hello world
ok 48 /gsubprocess/communicate/utf8/no-pipes
ok 49 /gsubprocess/communicate/utf8/separate-stderr
ok 50 /gsubprocess/communicate/utf8/stdout-only
# hello world
ok 51 /gsubprocess/communicate/utf8/stderr-only
ok 52 /gsubprocess/communicate/utf8/stdout-silence
ok 53 /gsubprocess/communicate/utf8/invalid
# Start of async tests
ok 54 /gsubprocess/communicate/utf8/async/cancelled
# hello world
ok 55 /gsubprocess/communicate/utf8/async/no-pipes
ok 56 /gsubprocess/communicate/utf8/async/separate-stderr
ok 57 /gsubprocess/communicate/utf8/async/stdout-only
# hello world
ok 58 /gsubprocess/communicate/utf8/async/stderr-only
ok 59 /gsubprocess/communicate/utf8/async/stdout-silence
ok 60 /gsubprocess/communicate/utf8/async/invalid
# Start of cancelled tests
ok 61 /gsubprocess/communicate/utf8/async/cancelled/no-pipes
ok 62 /gsubprocess/communicate/utf8/async/cancelled/separate-stderr
ok 63 /gsubprocess/communicate/utf8/async/cancelled/stdout-only
ok 64 /gsubprocess/communicate/utf8/async/cancelled/stderr-only
ok 65 /gsubprocess/communicate/utf8/async/cancelled/stdout-silence
# End of cancelled tests
# End of async tests
# Start of cancelled tests
ok 66 /gsubprocess/communicate/utf8/cancelled/no-pipes
ok 67 /gsubprocess/communicate/utf8/cancelled/separate-stderr
ok 68 /gsubprocess/communicate/utf8/cancelled/stdout-only
ok 69 /gsubprocess/communicate/utf8/cancelled/stderr-only
ok 70 /gsubprocess/communicate/utf8/cancelled/stdout-silence
# End of cancelled tests
# End of utf8 tests
# Start of cancelled tests
ok 71 /gsubprocess/communicate/cancelled/no-pipes
ok 72 /gsubprocess/communicate/cancelled/separate-stderr
ok 73 /gsubprocess/communicate/cancelled/stdout-only
ok 74 /gsubprocess/communicate/cancelled/stderr-only
ok 75 /gsubprocess/communicate/cancelled/stdout-silence
# End of cancelled tests
# End of communicate tests
# Start of env tests
# GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
# GLib-DEBUG: setenv()/putenv() are not thread-safe and should not be used after threads are created
ok 76 /gsubprocess/env/inherit
# End of env tests
# Start of pass-fd tests
ok 77 /gsubprocess/pass-fd/basic
ok 78 /gsubprocess/pass-fd/empty-child-setup
ok 79 /gsubprocess/pass-fd/inherit-fds
# End of pass-fd tests
# Start of fd-conflation tests
ok 80 /gsubprocess/fd-conflation/basic
ok 81 /gsubprocess/fd-conflation/empty-child-setup
ok 82 /gsubprocess/fd-conflation/inherit-fds
ok 83 /gsubprocess/fd-conflation/child-err-report-fd
# End of fd-conflation tests
# Start of exit-status tests
# /gsubprocess/exit-status/trapped summary: Test that exit status is reported correctly for ptrace()d child processes
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3433
ok 84 /gsubprocess/exit-status/trapped
# End of exit-status tests
# End of gsubprocess tests
PASS: glib/gsubprocess.test
Running test: glib/unix-streams.test
TAP version 14
# random seed: R02S7b71e412d9561aad7b1454f619b3fe74
1..9
# Start of unix-streams tests
ok 1 /unix-streams/basic
ok 2 /unix-streams/pipe-io-test
# slow test /unix-streams/pipe-io-test executed in 0.50 secs
Executing: glib/unix-streams.test
ok 3 /unix-streams/nonblocking-io-test
# slow test /unix-streams/nonblocking-io-test executed in 0.50 secs
ok 4 /unix-streams/read_write
ok 5 /unix-streams/read_writev
ok 6 /unix-streams/write-wouldblock
ok 7 /unix-streams/writev-wouldblock
ok 8 /unix-streams/write-async-wouldblock
ok 9 /unix-streams/writev-async-wouldblock
# End of unix-streams tests
PASS: glib/unix-streams.test
Running test: glib/properties-refcount1.test
TAP version 14
# random seed: R02S4a7e24c1fff5ed2e4e96a6e74b1afdd9
1..1
# Start of gobject tests
# Start of refcount tests
# .d
# .f
# .b
# .c
# .e
# .d
# .b
# .f
# .e
# .c
# .d
# .f
# .b
# .e
# .c
# .d
# .f
# .b
# .e
# .c
# .d
# .f
# .b
# .e
# .c
# .d
# .f
# .b
# .e
# .c
# .d
# .b
# .f
# .e
# .e
# .f
# .d
# .c
# .b
# .e
# .f
# .d
# .b
# .c
# .e
# .f
# .d
# .b
# .e
# .c
# .f
# .e
# .d
# .b
# .c
# .f
# .d
# .b
# .e
# .c
# .f
# .b
# .d
# .e
# .c
# .b
# .f
# .d
# .e
# .b
# .c
# .f
# .d
# .e
# .c
# .b
# .d
# .f
# .b
# .e
# .c
# .d
# .f
# .b
# .e
# .f
# .b
# .c
# .d
# .e
# .f
# .b
# .c
# .e
# .d
# .f
# .b
# .c
# .e
# .d
# .f
# .b
# .c
# .e
# .d
# .f
# .c
# .b
# .f
# .e
# .c
# .d
# .b
# .f
# .e
# .c
# .b
# .d
# .f
# .d
# .e
# .f
# .c
# .b
# .d
# .d
# .e
# .b
# .f
# .c
# .d
# .b
# .f
# .e
# .c
# .b
# .d
# .f
# .e
# .c
# .d
# .b
# .f
# .c
# .e
# .d
# .f
# .b
# .e
# .c
# .d
# .f
# .e
# .b
# .d
# .c
# .f
# .b
# .e
# .d
# .c
# .f
# .b
# .c
# .e
# .d
# .f
# .b
# .c
# .e
# .d
# .f
# .d
# .b
# .e
# .c
# .f
# .b
# .d
# .c
# .e
# .f
# .b
# .d
# .e
# .f
# .c
# .b
# .d
# .e
# .f
# .b
# .c
# .f
# .d
# .e
# .b
# .f
# .c
# .d
# .b
# .e
# .f
# .b
# .c
# .d
# .e
# .f
# .b
# .d
# .e
# .c
# .f
ok 1 /gobject/refcount/properties-1
# slow test /gobject/refcount/properties-1 executed in 3.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/properties-refcount1.test
Running test: glib/spawn-singlethread.test
TAP version 14
# random seed: R02S334149ce4309c14524f0c512b480ce49
1..9
# Start of gthread tests
ok 1 /gthread/spawn-single-sync
# /gthread/spawn-stderr-socket summary: Test calling g_spawn_sync() with its stderr FD set to a socket
ok 2 /gthread/spawn-stderr-socket
ok 3 /gthread/spawn-single-async
# thread 1
# thread 1
ok 4 /gthread/spawn-single-async-with-fds
ok 5 /gthread/spawn-async-with-invalid-fds
ok 6 /gthread/spawn-script
ok 7 /gthread/spawn-posix-spawn
# Start of spawn tests
ok 8 /gthread/spawn/nonexistent
# FD map:
#  ? 5 ? 15
#  ? 6 ? 16
#  ? 7 ? 17
#  ? 8 ? 18
#  ? 9 ? 19
#  ? 10 ? 20
#  ? 11 ? 21
#  ? 12 ? 22
#  ? 13 ? 23
#  ? 3 ? 13
ok 9 /gthread/spawn/fd-assignment-clash
# End of spawn tests
# End of gthread tests
PASS: glib/spawn-singlethread.test
Running test: glib/data-input-stream.test
TAP version 14
# random seed: R02Scabbb6f9669271be2dae2d90c66fe962
1..10
# Start of data-input-stream tests
ok 1 /data-input-stream/basic
ok 2 /data-input-stream/read-lines-LF
ok 3 /data-input-stream/read-lines-LF-valid-utf8
ok 4 /data-input-stream/read-lines-LF-invalid-utf8
ok 5 /data-input-stream/read-lines-CR
ok 6 /data-input-stream/read-lines-CR-LF
ok 7 /data-input-stream/read-lines-any
ok 8 /data-input-stream/read-until
# Test vector 0:  part1 # part2 $ part3 ? part4 ? and #$?^
# Test vector 1: {"key": "value"}? and ?
ok 9 /data-input-stream/read-upto
ok 10 /data-input-stream/read-int
# End of data-input-stream tests
PASS: glib/data-input-stream.test
Running test: glib/override.test
TAP version 14
# random seed: R02Sa8e02c38d15428df6a9d1e70c136b44b
1..1
# Start of gobject tests
# *** emitting foo on a TestA instance
#     Expecting: TestA::foo,TestI::foo
#     Got: TestA::foo,TestI::foo
# *** emitting bar on a TestA instance
#     Expecting: TestA::bar
#     Got: TestA::bar
# *** emitting baz on a TestA instance
#     Expecting: TestA::baz
#     Got: TestA::baz
# *** emitting foo on a TestB instance
#     Expecting: TestB::foo,TestA::foo,TestI::foo
#     Got: TestB::foo,TestA::foo,TestI::foo
# *** emitting bar on a TestB instance
#     Expecting: TestB::bar,TestA::bar
#     Got: TestB::bar,TestA::bar
# *** emitting baz on a TestB instance
#     Expecting: TestB::baz,TestA::baz
#     Got: TestB::baz,TestA::baz
# *** emitting foo on a TestC instance
#     Expecting: TestC::foo,TestB::foo,TestA::foo,TestI::foo
#     Got: TestC::foo,TestB::foo,TestA::foo,TestI::foo
# *** emitting bar on a TestC instance
#     Expecting: TestC::bar,TestB::bar,TestA::bar
#     Got: TestC::bar,TestB::bar,TestA::bar
# *** emitting baz on a TestC instance
#     Expecting: TestC::baz,TestB::baz,TestA::baz
#     Got: TestC::baz,TestB::baz,TestA::baz
ok 1 /gobject/override
# End of gobject tests
PASS: glib/override.test
Running test: glib/guuid.test
TAP version 14
# random seed: R02S20c65640e93f38b13bd823d761959dcf
1..2
# Start of uuid tests
ok 1 /uuid/string
ok 2 /uuid/random
# End of uuid tests
PASS: glib/guuid.test
Running test: glib/option-argv0.test
TAP version 14
# random seed: R02S455737c19846cb5c9ce86e423529632f
1..1
# Start of option tests
ok 1 /option/argv0
# End of option tests
PASS: glib/option-argv0.test
Running test: glib/utils-c-89.test
TAP version 14
# random seed: R02S4d65ef2e0cdc672549c2d9defab209e9
1..41
# Start of utils tests
ok 1 /utils/language-names
ok 2 /utils/locale-variants
ok 3 /utils/version
ok 4 /utils/appname
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/847
# /utils/prgname-thread-safety summary: Test that threads racing to get and set the program name always receive a valid program name.
ok 5 /utils/prgname-thread-safety
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=627969
# /utils/tmpdir summary: Test that g_get_tmp_dir() returns a correct default if TMPDIR is set to the empty string
ok 6 /utils/tmpdir
ok 7 /utils/basic_bits
ok 8 /utils/bits
ok 9 /utils/swap
ok 10 /utils/find-program
ok 11 /utils/find-program-for-path
ok 12 /utils/debug
ok 13 /utils/codeset
ok 14 /utils/codeset2
ok 15 /utils/console-charset
ok 16 /utils/gettext
ok 17 /utils/username
ok 18 /utils/realname
ok 19 /utils/hostname
ok 20 /utils/xdgdirs
ok 21 /utils/specialdir
# NAME: Linux
ok 22 /utils/os-info
ok 23 /utils/clear-pointer
ok 24 /utils/clear-pointer-cast
ok 25 /utils/take-pointer
ok 26 /utils/clear-source
ok 27 /utils/misc-mem
# /utils/aligned-mem summary: Aligned memory allocator
# Alignment must not be zero
# Alignment must be a power of two
# Alignment must be a multiple of sizeof(void*)
ok 28 /utils/aligned-mem
# /utils/free-sized summary: Check that g_free_sized() works
ok 29 /utils/free-sized
ok 30 /utils/nullify
ok 31 /utils/atexit
ok 32 /utils/check-setuid
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663
ok 33 /utils/int-limits
ok 34 /utils/clear-list
ok 35 /utils/clear-slist
ok 36 /utils/steal-handle-id
# Start of specialdir tests
ok 37 /utils/specialdir/desktop
# End of specialdir tests
# Start of clear-pointer tests
ok 38 /utils/clear-pointer/side-effects
# End of clear-pointer tests
# Start of aligned-mem tests
# /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer
ok 39 /utils/aligned-mem/alignment
# /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation
ok 40 /utils/aligned-mem/zeroed
# /utils/aligned-mem/free-sized summary: Check that g_aligned_free_sized() works
ok 41 /utils/aligned-mem/free-sized
# Start of subprocess tests
# End of subprocess tests
# End of aligned-mem tests
# End of utils tests
PASS: glib/utils-c-89.test
Running test: glib/mkenums.py.test
TAP version 13
ok 1 __main__.TestMkenums.test_available_in
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpbqsvbkrr
# rspfile: False
# /tmp/tmpbqsvbkrr/tmpp8ve04kj.h: 
#         typedef enum {
#           G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2)
#         } GDBusServerFlags;
#         
# /tmp/tmpbqsvbkrr/tmpznekhhqk.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpbqsvbkrr/tmpznekhhqk.template', '/tmp/tmpbqsvbkrr/tmpp8ve04kj.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpbqsvbkrr/tmpp8ve04kj.h
# basename: tmpp8ve04kj.h
# enumeration-production
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-header
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-production
# VALUENAME: G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
# valuenick: user
# valuenum: 4
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-tail
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 2 __main__.TestMkenums.test_comma_in_enum_value
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmplw4u5dd8
# rspfile: False
# /tmp/tmplw4u5dd8/tmpgjfcz_1c.h: 
#         typedef enum {
#           ENUM_VALUE_WITH_COMMA = ',',
#         } TestCommaEnum;
#         
# /tmp/tmplw4u5dd8/tmp71hpkwog.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmplw4u5dd8/tmp71hpkwog.template', '/tmp/tmplw4u5dd8/tmpgjfcz_1c.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmplw4u5dd8/tmpgjfcz_1c.h
# basename: tmpgjfcz_1c.h
# enumeration-production
# EnumName: TestCommaEnum
# enum_name: test_comma_enum
# ENUMNAME: TEST_COMMA_ENUM
# ENUMSHORT: COMMA_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: TestCommaEnum
# enum_name: test_comma_enum
# ENUMNAME: TEST_COMMA_ENUM
# ENUMSHORT: COMMA_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_WITH_COMMA
# valuenick: comma
# valuenum: 44
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: TestCommaEnum
# enum_name: test_comma_enum
# ENUMNAME: TEST_COMMA_ENUM
# ENUMSHORT: COMMA_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 3 __main__.TestMkenums.test_deprecated_in
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpdom5o5e0
# rspfile: False
# /tmp/tmpdom5o5e0/tmpgkoupqbw.h: 
#         typedef enum {
#           G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2)
#         } GDBusServerFlags;
#         
# /tmp/tmpdom5o5e0/tmpds_qpr_l.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpdom5o5e0/tmpds_qpr_l.template', '/tmp/tmpdom5o5e0/tmpgkoupqbw.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpdom5o5e0/tmpgkoupqbw.h
# basename: tmpgkoupqbw.h
# enumeration-production
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-header
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-production
# VALUENAME: G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
# valuenick: user
# valuenum: 4
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-tail
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 4 __main__.TestMkenums.test_deprecated_in_for
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp3j2k1ijr
# rspfile: False
# /tmp/tmp3j2k1ijr/tmpafwph5pk.h: 
#         typedef enum {
#           G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER2) = (1<<2)
#         } GDBusServerFlags;
#         
# /tmp/tmp3j2k1ijr/tmpe50fmh6n.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmp3j2k1ijr/tmpe50fmh6n.template', '/tmp/tmp3j2k1ijr/tmpafwph5pk.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp3j2k1ijr/tmpafwph5pk.h
# basename: tmpafwph5pk.h
# enumeration-production
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-header
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-production
# VALUENAME: G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
# valuenick: user
# valuenum: 4
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-tail
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 5 __main__.TestMkenums.test_empty_header
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpz5xsdgij
# rspfile: False
# /tmp/tmpz5xsdgij/tmp0zh6km1r.h: 
# /tmp/tmpz5xsdgij/tmpbmyr6gem.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpz5xsdgij/tmpbmyr6gem.template', '/tmp/tmpz5xsdgij/tmp0zh6km1r.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 6 __main__.TestMkenums.test_empty_template
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp4fnce083
# rspfile: False
# /tmp/tmp4fnce083/tmpn3jxiw6t.template: 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmp4fnce083/tmpn3jxiw6t.template']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
ok 7 __main__.TestMkenums.test_enum_name
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpzov9jjjx
# rspfile: False
# /tmp/tmpzov9jjjx/tmpaj3b7zbw.h: 
#         typedef enum _SomeEnumIdentifier {
#           ENUM_VALUE
#         } SomeEnumIdentifier;
#         
# /tmp/tmpzov9jjjx/tmpepf6dxiy.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpzov9jjjx/tmpepf6dxiy.template', '/tmp/tmpzov9jjjx/tmpaj3b7zbw.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpzov9jjjx/tmpaj3b7zbw.h
# basename: tmpaj3b7zbw.h
# enumeration-production
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE
# valuenick: value
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 8 __main__.TestMkenums.test_enum_private_public
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpwocyt81h
# rspfile: False
# /tmp/tmpwocyt81h/tmpcj6zw6ev.h: 
#         typedef enum {
#           ENUM_VALUE_PUBLIC1,
#           /*< private >*/
#           ENUM_VALUE_PRIVATE,
#         } SomeEnumA
#         
# /tmp/tmpwocyt81h/tmp_o0qetgl.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpwocyt81h/tmp_o0qetgl.template', '/tmp/tmpwocyt81h/tmpcj6zw6ev.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpwocyt81h/tmpcj6zw6ev.h
# basename: tmpcj6zw6ev.h
# enumeration-production
# EnumName: SomeEnumA
# enum_name: some_enum_a
# ENUMNAME: SOME_ENUM_A
# ENUMSHORT: ENUM_A
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumA
# enum_name: some_enum_a
# ENUMNAME: SOME_ENUM_A
# ENUMSHORT: ENUM_A
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_PUBLIC1
# valuenick: public1
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumA
# enum_name: some_enum_a
# ENUMNAME: SOME_ENUM_A
# ENUMSHORT: ENUM_A
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
#  
# /tmp/tmpwocyt81h/tmpfk4ca13_.h: 
#         typedef enum {
#           /*< private >*/
#           ENUM_VALUE_PRIVATE,
#           /*< public >*/
#           ENUM_VALUE_PUBLIC2,
#         } SomeEnumB;
#         
# /tmp/tmpwocyt81h/tmpswkeafci.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpwocyt81h/tmpswkeafci.template', '/tmp/tmpwocyt81h/tmpfk4ca13_.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpwocyt81h/tmpfk4ca13_.h
# basename: tmpfk4ca13_.h
# enumeration-production
# EnumName: SomeEnumB
# enum_name: some_enum_b
# ENUMNAME: SOME_ENUM_B
# ENUMSHORT: ENUM_B
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumB
# enum_name: some_enum_b
# ENUMNAME: SOME_ENUM_B
# ENUMSHORT: ENUM_B
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_PUBLIC2
# valuenick: public2
# valuenum: 1
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumB
# enum_name: some_enum_b
# ENUMNAME: SOME_ENUM_B
# ENUMSHORT: ENUM_B
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 9 __main__.TestMkenums.test_enum_symbolic_expression
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp4jznx44l
# rspfile: False
# /tmp/tmp4jznx44l/tmpuxja1k9w.h: 
#         typedef enum {
#           /*< private >*/
#           ENUM_VALUE_PRIVATE = 5,
#           /*< public >*/
#           ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2,
#         } TestSymbolicEnum;
#         
# /tmp/tmp4jznx44l/tmpf7q2jjz2.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmp4jznx44l/tmpf7q2jjz2.template', '/tmp/tmp4jznx44l/tmpuxja1k9w.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp4jznx44l/tmpuxja1k9w.h
# basename: tmpuxja1k9w.h
# enumeration-production
# EnumName: TestSymbolicEnum
# enum_name: test_symbolic_enum
# ENUMNAME: TEST_SYMBOLIC_ENUM
# ENUMSHORT: SYMBOLIC_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: TestSymbolicEnum
# enum_name: test_symbolic_enum
# ENUMNAME: TEST_SYMBOLIC_ENUM
# ENUMSHORT: SYMBOLIC_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_PUBLIC
# valuenick: public
# valuenum: 7
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: TestSymbolicEnum
# enum_name: test_symbolic_enum
# ENUMNAME: TEST_SYMBOLIC_ENUM
# ENUMSHORT: SYMBOLIC_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 10 __main__.TestMkenums.test_filename_basename_in_fhead_ftail
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp2ma7ganl
# rspfile: False
# /tmp/tmp2ma7ganl/tmpsq17h4xu.template: 
# /*** BEGIN file-header ***/
# file-header
# filename: @filename@
# basename: @basename@
# /*** END file-header ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# filename: @filename@
# basename: @basename@
# /*** END file-tail ***/
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmp2ma7ganl/tmpsq17h4xu.template']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# filename: @filename@
# basename: @basename@
# file-tail
# filename: @filename@
# basename: @basename@
# 
# comment
# comment: Generated data ends here
# Error:
#  WARNING: @filename@ used in file-header section.
# WARNING: @basename@ used in file-header section.
# WARNING: @filename@ used in file-tail section.
# WARNING: @basename@ used in file-tail section.
ok 11 __main__.TestMkenums.test_help
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpxny467vq
# rspfile: False
# Running: ['/usr/bin/glib-mkenums', '--help']
# Return code: 0
# Output:
#  usage: glib-mkenums [-h] [--identifier-prefix IDPREFIX]
#                     [--symbol-prefix SYMPREFIX] [--fhead FHEAD]
#                     [--ftail FTAIL] [--fprod FPROD] [--eprod EPROD]
#                     [--vhead VHEAD] [--vprod VPROD] [--vtail VTAIL]
#                     [--comments COMMENT_TMPL] [--template TEMPLATE]
#                     [--output OUTPUT] [--version]
#                     [args ...]
# 
# positional arguments:
#   args                  One or more input files, or a single argument
#                         @rspfile_path pointing to a file that contains the
#                         actual arguments
# 
# options:
#   -h, --help            show this help message and exit
#   --identifier-prefix IDPREFIX
#                         Identifier prefix
#   --symbol-prefix SYMPREFIX
#                         Symbol prefix
#   --fhead FHEAD         Output file header
#   --ftail FTAIL         Output file footer
#   --fprod FPROD         Put out TEXT every time a new input file is being
#                         processed.
#   --eprod EPROD         Per enum text, produced prior to value iterations
#   --vhead VHEAD         Value header, produced before iterating over enum
#                         values
#   --vprod VPROD         Value text, produced for each enum value.
#   --vtail VTAIL         Value tail, produced after iterating over enum values
#   --comments COMMENT_TMPL
#                         Comment structure
#   --template TEMPLATE   Template file
#   --output OUTPUT
#   --version, -v         Print version information
# 
# Production text substitutions:
#   @EnumName@            PrefixTheXEnum
#   @enum_name@           prefix_the_xenum
#   @ENUMNAME@            PREFIX_THE_XENUM
#   @ENUMSHORT@           THE_XENUM
#   @ENUMPREFIX@          PREFIX
#   @enumsince@           the user-provided since value given
#   @VALUENAME@           PREFIX_THE_XVALUE
#   @valuenick@           the-xvalue
#   @valuenum@            the integer value (limited support, Since: 2.26)
#   @type@                either enum or flags
#   @Type@                either Enum or Flags
#   @TYPE@                either ENUM or FLAGS
#   @filename@            name of current input file
#   @basename@            base name of the current input file (Since: 2.22)
# Error:
ok 12 __main__.TestMkenums.test_no_args
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpg8n3mlav
# rspfile: False
# Running: ['/usr/bin/glib-mkenums']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
ok 13 __main__.TestMkenums.test_no_headers
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpbbeodlva
# rspfile: False
# /tmp/tmpbbeodlva/tmp1tg992wt.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpbbeodlva/tmp1tg992wt.template']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 14 __main__.TestMkenums.test_no_nick
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp8ym4q5dn
# rspfile: False
# /tmp/tmp8ym4q5dn/tmp47du0mzc.h: 
#         typedef enum {
#           GEGL_SAMPLER_NEAREST = 0,   /*< desc="nearest"      >*/
#         } GeglSamplerType;
#         
# /tmp/tmp8ym4q5dn/tmp628tsfxg.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmp8ym4q5dn/tmp628tsfxg.template', '/tmp/tmp8ym4q5dn/tmp47du0mzc.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp8ym4q5dn/tmp47du0mzc.h
# basename: tmp47du0mzc.h
# enumeration-production
# EnumName: GeglSamplerType
# enum_name: gegl_sampler_type
# ENUMNAME: GEGL_SAMPLER_TYPE
# ENUMSHORT: SAMPLER_TYPE
# ENUMPREFIX: GEGL
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: GeglSamplerType
# enum_name: gegl_sampler_type
# ENUMNAME: GEGL_SAMPLER_TYPE
# ENUMSHORT: SAMPLER_TYPE
# ENUMPREFIX: GEGL
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: GEGL_SAMPLER_NEAREST
# valuenick: nearest
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: GeglSamplerType
# enum_name: gegl_sampler_type
# ENUMNAME: GEGL_SAMPLER_TYPE
# ENUMSHORT: SAMPLER_TYPE
# ENUMPREFIX: GEGL
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 15 __main__.TestMkenums.test_non_utf8_encoding
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpyc82xz9z
# rspfile: False
# /tmp/tmpyc82xz9z/tmpc9sztpnr.h: 
#         /* Copyright © La Peña */
#         typedef enum {
#           ENUM_VALUE
#         } SomeEnumIdentifier;
#         
# /tmp/tmpyc82xz9z/tmpfyqdvy8f.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpyc82xz9z/tmpfyqdvy8f.template', '/tmp/tmpyc82xz9z/tmpc9sztpnr.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpyc82xz9z/tmpc9sztpnr.h
# basename: tmpc9sztpnr.h
# enumeration-production
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE
# valuenick: value
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
#  WARNING: UnicodeWarning: invalid start byte at 22 (b'yright \xa9 La Pe\xf1')
# WARNING: UnicodeWarning: invalid continuation byte at 29 (b'\xa9 La Pe\xf1a */\n  ')
ok 16 __main__.TestMkenums.test_reproducible
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpj6r06it7
# rspfile: False
# /tmp/tmpj6r06it7/tmp4wni0inc.template: template
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpj6r06it7/tmp4wni0inc.template', '/tmp/tmpj6r06it7/tmpnn2_pkjr1.h', '/tmp/tmpj6r06it7/tmpxe5m2jf52.h']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
#  
# /tmp/tmpj6r06it7/tmphr_nknrj.template: template
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpj6r06it7/tmphr_nknrj.template', '/tmp/tmpj6r06it7/tmpxe5m2jf52.h', '/tmp/tmpj6r06it7/tmpnn2_pkjr1.h']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
ok 17 __main__.TestMkenums.test_since
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpfl82_p0d
# rspfile: False
# /tmp/tmpfl82_p0d/tmp1858lljd.h: 
#         typedef enum { /*< since=1.0 >*/
#             QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0,
#         } QmiWmsMessageProtocol;
#         
# /tmp/tmpfl82_p0d/tmp65sjvuwx.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpfl82_p0d/tmp65sjvuwx.template', '/tmp/tmpfl82_p0d/tmp1858lljd.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpfl82_p0d/tmp1858lljd.h
# basename: tmp1858lljd.h
# enumeration-production
# EnumName: QmiWmsMessageProtocol
# enum_name: qmi_wms_message_protocol
# ENUMNAME: QMI_WMS_MESSAGE_PROTOCOL
# ENUMSHORT: WMS_MESSAGE_PROTOCOL
# ENUMPREFIX: QMI
# enumsince: 1.0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: QmiWmsMessageProtocol
# enum_name: qmi_wms_message_protocol
# ENUMNAME: QMI_WMS_MESSAGE_PROTOCOL
# ENUMSHORT: WMS_MESSAGE_PROTOCOL
# ENUMPREFIX: QMI
# enumsince: 1.0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: QMI_WMS_MESSAGE_PROTOCOL_CDMA
# valuenick: cdma
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: QmiWmsMessageProtocol
# enum_name: qmi_wms_message_protocol
# ENUMNAME: QMI_WMS_MESSAGE_PROTOCOL
# ENUMSHORT: WMS_MESSAGE_PROTOCOL
# ENUMPREFIX: QMI
# enumsince: 1.0
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 18 __main__.TestMkenums.test_with_double_quotes
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp3x1g_nio
# rspfile: False
# /tmp/tmp3x1g_nio/tmpu85dz39i.h: 
#         typedef enum {
#           FOO_VALUE /*< nick="eek, a comma" >*/
#         } Foo;
#         
# /tmp/tmp3x1g_nio/tmppbzx055e.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmp3x1g_nio/tmppbzx055e.template', '/tmp/tmp3x1g_nio/tmpu85dz39i.h']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp3x1g_nio/tmpu85dz39i.h
# basename: tmpu85dz39i.h
# enumeration-production
# EnumName: Foo
# enum_name: foo_
# ENUMNAME: FOO_
# ENUMSHORT: 
# ENUMPREFIX: FOO
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: Foo
# enum_name: foo_
# ENUMNAME: FOO_
# ENUMSHORT: 
# ENUMPREFIX: FOO
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: FOO_VALUE
# valuenick: eek, a comma
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: Foo
# enum_name: foo_
# ENUMNAME: FOO_
# ENUMSHORT: 
# ENUMPREFIX: FOO
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 19 __main__.TestRspMkenums.test_available_in
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpw0shfcxt
# rspfile: True
# /tmp/tmpw0shfcxt/tmp6uj72m3d.h: 
#         typedef enum {
#           G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2)
#         } GDBusServerFlags;
#         
# /tmp/tmpw0shfcxt/tmpge8qhxz8.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpw0shfcxt/tmpge8qhxz8.template /tmp/tmpw0shfcxt/tmp6uj72m3d.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpw0shfcxt/tmp9ls5ih87']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpw0shfcxt/tmp6uj72m3d.h
# basename: tmp6uj72m3d.h
# enumeration-production
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-header
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-production
# VALUENAME: G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
# valuenick: user
# valuenum: 4
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-tail
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 20 __main__.TestRspMkenums.test_comma_in_enum_value
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpe_yg5cl8
# rspfile: True
# /tmp/tmpe_yg5cl8/tmpv0on0obi.h: 
#         typedef enum {
#           ENUM_VALUE_WITH_COMMA = ',',
#         } TestCommaEnum;
#         
# /tmp/tmpe_yg5cl8/tmpmsqdu7wt.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpe_yg5cl8/tmpmsqdu7wt.template /tmp/tmpe_yg5cl8/tmpv0on0obi.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpe_yg5cl8/tmpgv6lesqn']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpe_yg5cl8/tmpv0on0obi.h
# basename: tmpv0on0obi.h
# enumeration-production
# EnumName: TestCommaEnum
# enum_name: test_comma_enum
# ENUMNAME: TEST_COMMA_ENUM
# ENUMSHORT: COMMA_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: TestCommaEnum
# enum_name: test_comma_enum
# ENUMNAME: TEST_COMMA_ENUM
# ENUMSHORT: COMMA_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_WITH_COMMA
# valuenick: comma
# valuenum: 44
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: TestCommaEnum
# enum_name: test_comma_enum
# ENUMNAME: TEST_COMMA_ENUM
# ENUMSHORT: COMMA_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 21 __main__.TestRspMkenums.test_deprecated_in
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpk0ie5yqw
# rspfile: True
# /tmp/tmpk0ie5yqw/tmp52nuxbzo.h: 
#         typedef enum {
#           G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2)
#         } GDBusServerFlags;
#         
# /tmp/tmpk0ie5yqw/tmp72kkdury.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpk0ie5yqw/tmp72kkdury.template /tmp/tmpk0ie5yqw/tmp52nuxbzo.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpk0ie5yqw/tmpv3tkz2m3']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpk0ie5yqw/tmp52nuxbzo.h
# basename: tmp52nuxbzo.h
# enumeration-production
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-header
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-production
# VALUENAME: G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
# valuenick: user
# valuenum: 4
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-tail
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 22 __main__.TestRspMkenums.test_deprecated_in_for
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpkb02rv2n
# rspfile: True
# /tmp/tmpkb02rv2n/tmpw4nmckjs.h: 
#         typedef enum {
#           G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER2) = (1<<2)
#         } GDBusServerFlags;
#         
# /tmp/tmpkb02rv2n/tmpzj54uq45.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpkb02rv2n/tmpzj54uq45.template /tmp/tmpkb02rv2n/tmpw4nmckjs.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpkb02rv2n/tmpn8xm58s4']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpkb02rv2n/tmpw4nmckjs.h
# basename: tmpw4nmckjs.h
# enumeration-production
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-header
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-production
# VALUENAME: G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER
# valuenick: user
# valuenum: 4
# type: flags
# Type: Flags
# TYPE: FLAGS
# value-tail
# EnumName: GDBusServerFlags
# enum_name: g_dbus_server_flags
# ENUMNAME: G_DBUS_SERVER_FLAGS
# ENUMSHORT: DBUS_SERVER_FLAGS
# ENUMPREFIX: G
# enumsince: 
# type: flags
# Type: Flags
# TYPE: FLAGS
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 23 __main__.TestRspMkenums.test_empty_header
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpezcodl8n
# rspfile: True
# /tmp/tmpezcodl8n/tmptcuedgak.h: 
# /tmp/tmpezcodl8n/tmp_ys2m7eb.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpezcodl8n/tmp_ys2m7eb.template /tmp/tmpezcodl8n/tmptcuedgak.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpezcodl8n/tmp31bkecgj']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 24 __main__.TestRspMkenums.test_empty_template
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmprs1dw1xs
# rspfile: True
# /tmp/tmprs1dw1xs/tmp2q8er0cy.template: 
# Response file contains: --template /tmp/tmprs1dw1xs/tmp2q8er0cy.template
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmprs1dw1xs/tmp4f2sy04n']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
ok 25 __main__.TestRspMkenums.test_enum_name
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp1t2bmtfi
# rspfile: True
# /tmp/tmp1t2bmtfi/tmppe_3bpw5.h: 
#         typedef enum _SomeEnumIdentifier {
#           ENUM_VALUE
#         } SomeEnumIdentifier;
#         
# /tmp/tmp1t2bmtfi/tmpvizxpss3.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmp1t2bmtfi/tmpvizxpss3.template /tmp/tmp1t2bmtfi/tmppe_3bpw5.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp1t2bmtfi/tmpsjv6kya_']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp1t2bmtfi/tmppe_3bpw5.h
# basename: tmppe_3bpw5.h
# enumeration-production
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE
# valuenick: value
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 26 __main__.TestRspMkenums.test_enum_private_public
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpdo6iesij
# rspfile: True
# /tmp/tmpdo6iesij/tmp112f1_er.h: 
#         typedef enum {
#           ENUM_VALUE_PUBLIC1,
#           /*< private >*/
#           ENUM_VALUE_PRIVATE,
#         } SomeEnumA
#         
# /tmp/tmpdo6iesij/tmpl0koax8x.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpdo6iesij/tmpl0koax8x.template /tmp/tmpdo6iesij/tmp112f1_er.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpdo6iesij/tmph7db7udy']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpdo6iesij/tmp112f1_er.h
# basename: tmp112f1_er.h
# enumeration-production
# EnumName: SomeEnumA
# enum_name: some_enum_a
# ENUMNAME: SOME_ENUM_A
# ENUMSHORT: ENUM_A
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumA
# enum_name: some_enum_a
# ENUMNAME: SOME_ENUM_A
# ENUMSHORT: ENUM_A
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_PUBLIC1
# valuenick: public1
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumA
# enum_name: some_enum_a
# ENUMNAME: SOME_ENUM_A
# ENUMSHORT: ENUM_A
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
#  
# /tmp/tmpdo6iesij/tmp8exbgkae.h: 
#         typedef enum {
#           /*< private >*/
#           ENUM_VALUE_PRIVATE,
#           /*< public >*/
#           ENUM_VALUE_PUBLIC2,
#         } SomeEnumB;
#         
# /tmp/tmpdo6iesij/tmpsvtbwbuh.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpdo6iesij/tmpsvtbwbuh.template /tmp/tmpdo6iesij/tmp8exbgkae.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpdo6iesij/tmprwigtuww']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpdo6iesij/tmp8exbgkae.h
# basename: tmp8exbgkae.h
# enumeration-production
# EnumName: SomeEnumB
# enum_name: some_enum_b
# ENUMNAME: SOME_ENUM_B
# ENUMSHORT: ENUM_B
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumB
# enum_name: some_enum_b
# ENUMNAME: SOME_ENUM_B
# ENUMSHORT: ENUM_B
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_PUBLIC2
# valuenick: public2
# valuenum: 1
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumB
# enum_name: some_enum_b
# ENUMNAME: SOME_ENUM_B
# ENUMSHORT: ENUM_B
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 27 __main__.TestRspMkenums.test_enum_symbolic_expression
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp8ah3yrv_
# rspfile: True
# /tmp/tmp8ah3yrv_/tmpi58ngc9n.h: 
#         typedef enum {
#           /*< private >*/
#           ENUM_VALUE_PRIVATE = 5,
#           /*< public >*/
#           ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2,
#         } TestSymbolicEnum;
#         
# /tmp/tmp8ah3yrv_/tmpcs18mbma.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmp8ah3yrv_/tmpcs18mbma.template /tmp/tmp8ah3yrv_/tmpi58ngc9n.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp8ah3yrv_/tmpwx8tl3vv']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp8ah3yrv_/tmpi58ngc9n.h
# basename: tmpi58ngc9n.h
# enumeration-production
# EnumName: TestSymbolicEnum
# enum_name: test_symbolic_enum
# ENUMNAME: TEST_SYMBOLIC_ENUM
# ENUMSHORT: SYMBOLIC_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: TestSymbolicEnum
# enum_name: test_symbolic_enum
# ENUMNAME: TEST_SYMBOLIC_ENUM
# ENUMSHORT: SYMBOLIC_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE_PUBLIC
# valuenick: public
# valuenum: 7
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: TestSymbolicEnum
# enum_name: test_symbolic_enum
# ENUMNAME: TEST_SYMBOLIC_ENUM
# ENUMSHORT: SYMBOLIC_ENUM
# ENUMPREFIX: TEST
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 28 __main__.TestRspMkenums.test_filename_basename_in_fhead_ftail
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpqbpfo0j8
# rspfile: True
# /tmp/tmpqbpfo0j8/tmp5kuz9s93.template: 
# /*** BEGIN file-header ***/
# file-header
# filename: @filename@
# basename: @basename@
# /*** END file-header ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# filename: @filename@
# basename: @basename@
# /*** END file-tail ***/
# Response file contains: --template /tmp/tmpqbpfo0j8/tmp5kuz9s93.template
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpqbpfo0j8/tmprg7gmmfs']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# filename: @filename@
# basename: @basename@
# file-tail
# filename: @filename@
# basename: @basename@
# 
# comment
# comment: Generated data ends here
# Error:
#  WARNING: @filename@ used in file-header section.
# WARNING: @basename@ used in file-header section.
# WARNING: @filename@ used in file-tail section.
# WARNING: @basename@ used in file-tail section.
ok 29 __main__.TestRspMkenums.test_help
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpoqveym57
# rspfile: True
# Response file contains: --help
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpoqveym57/tmpt02mqdyj']
# Return code: 0
# Output:
#  usage: glib-mkenums [-h] [--identifier-prefix IDPREFIX]
#                     [--symbol-prefix SYMPREFIX] [--fhead FHEAD]
#                     [--ftail FTAIL] [--fprod FPROD] [--eprod EPROD]
#                     [--vhead VHEAD] [--vprod VPROD] [--vtail VTAIL]
#                     [--comments COMMENT_TMPL] [--template TEMPLATE]
#                     [--output OUTPUT] [--version]
#                     [args ...]
# 
# positional arguments:
#   args                  One or more input files, or a single argument
#                         @rspfile_path pointing to a file that contains the
#                         actual arguments
# 
# options:
#   -h, --help            show this help message and exit
#   --identifier-prefix IDPREFIX
#                         Identifier prefix
#   --symbol-prefix SYMPREFIX
#                         Symbol prefix
#   --fhead FHEAD         Output file header
#   --ftail FTAIL         Output file footer
#   --fprod FPROD         Put out TEXT every time a new input file is being
#                         processed.
#   --eprod EPROD         Per enum text, produced prior to value iterations
#   --vhead VHEAD         Value header, produced before iterating over enum
#                         values
#   --vprod VPROD         Value text, produced for each enum value.
#   --vtail VTAIL         Value tail, produced after iterating over enum values
#   --comments COMMENT_TMPL
#                         Comment structure
#   --template TEMPLATE   Template file
#   --output OUTPUT
#   --version, -v         Print version information
# 
# Production text substitutions:
#   @EnumName@            PrefixTheXEnum
#   @enum_name@           prefix_the_xenum
#   @ENUMNAME@            PREFIX_THE_XENUM
#   @ENUMSHORT@           THE_XENUM
#   @ENUMPREFIX@          PREFIX
#   @enumsince@           the user-provided since value given
#   @VALUENAME@           PREFIX_THE_XVALUE
#   @valuenick@           the-xvalue
#   @valuenum@            the integer value (limited support, Since: 2.26)
#   @type@                either enum or flags
#   @Type@                either Enum or Flags
#   @TYPE@                either ENUM or FLAGS
#   @filename@            name of current input file
#   @basename@            base name of the current input file (Since: 2.22)
# Error:
ok 30 __main__.TestRspMkenums.test_no_args
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp1n9muevh
# rspfile: True
# Response file contains: 
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp1n9muevh/tmphkvddocb']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
ok 31 __main__.TestRspMkenums.test_no_headers
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp2bzkql3c
# rspfile: True
# /tmp/tmp2bzkql3c/tmpdjlkckwk.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmp2bzkql3c/tmpdjlkckwk.template
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp2bzkql3c/tmplxpq_jha']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 32 __main__.TestRspMkenums.test_no_nick
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmp2sfnignb
# rspfile: True
# /tmp/tmp2sfnignb/tmpu8hplo0g.h: 
#         typedef enum {
#           GEGL_SAMPLER_NEAREST = 0,   /*< desc="nearest"      >*/
#         } GeglSamplerType;
#         
# /tmp/tmp2sfnignb/tmp95o7f3cj.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmp2sfnignb/tmp95o7f3cj.template /tmp/tmp2sfnignb/tmpu8hplo0g.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp2sfnignb/tmpu1sugpa6']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmp2sfnignb/tmpu8hplo0g.h
# basename: tmpu8hplo0g.h
# enumeration-production
# EnumName: GeglSamplerType
# enum_name: gegl_sampler_type
# ENUMNAME: GEGL_SAMPLER_TYPE
# ENUMSHORT: SAMPLER_TYPE
# ENUMPREFIX: GEGL
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: GeglSamplerType
# enum_name: gegl_sampler_type
# ENUMNAME: GEGL_SAMPLER_TYPE
# ENUMSHORT: SAMPLER_TYPE
# ENUMPREFIX: GEGL
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: GEGL_SAMPLER_NEAREST
# valuenick: nearest
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: GeglSamplerType
# enum_name: gegl_sampler_type
# ENUMNAME: GEGL_SAMPLER_TYPE
# ENUMSHORT: SAMPLER_TYPE
# ENUMPREFIX: GEGL
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 33 __main__.TestRspMkenums.test_non_utf8_encoding
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpy7cox3li
# rspfile: True
# /tmp/tmpy7cox3li/tmp665hqxdm.h: 
#         /* Copyright © La Peña */
#         typedef enum {
#           ENUM_VALUE
#         } SomeEnumIdentifier;
#         
# /tmp/tmpy7cox3li/tmpd91tsox6.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpy7cox3li/tmpd91tsox6.template /tmp/tmpy7cox3li/tmp665hqxdm.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpy7cox3li/tmpgfp7aet0']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpy7cox3li/tmp665hqxdm.h
# basename: tmp665hqxdm.h
# enumeration-production
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: ENUM_VALUE
# valuenick: value
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: SomeEnumIdentifier
# enum_name: some_enum_identifier
# ENUMNAME: SOME_ENUM_IDENTIFIER
# ENUMSHORT: ENUM_IDENTIFIER
# ENUMPREFIX: SOME
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
#  WARNING: UnicodeWarning: invalid start byte at 22 (b'yright \xa9 La Pe\xf1')
# WARNING: UnicodeWarning: invalid continuation byte at 29 (b'\xa9 La Pe\xf1a */\n  ')
ok 34 __main__.TestRspMkenums.test_reproducible
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpscxdx3c3
# rspfile: True
# /tmp/tmpscxdx3c3/tmpbkrk8z3p.template: template
# Response file contains: --template /tmp/tmpscxdx3c3/tmpbkrk8z3p.template /tmp/tmpscxdx3c3/tmp1yta9tga1.h /tmp/tmpscxdx3c3/tmp5tj_8xyw2.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpscxdx3c3/tmp5tl5u_kg']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
#  
# /tmp/tmpscxdx3c3/tmph0hdfayg.template: template
# Response file contains: --template /tmp/tmpscxdx3c3/tmph0hdfayg.template /tmp/tmpscxdx3c3/tmp5tj_8xyw2.h /tmp/tmpscxdx3c3/tmp1yta9tga1.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpscxdx3c3/tmp40ljjwps']
# Return code: 0
# Output:
#  /* 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. */
# 
# 
# /* Generated data ends here */
# Error:
ok 35 __main__.TestRspMkenums.test_since
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpbwm1yodj
# rspfile: True
# /tmp/tmpbwm1yodj/tmprl1_xl9y.h: 
#         typedef enum { /*< since=1.0 >*/
#             QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0,
#         } QmiWmsMessageProtocol;
#         
# /tmp/tmpbwm1yodj/tmpr22km38v.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpbwm1yodj/tmpr22km38v.template /tmp/tmpbwm1yodj/tmprl1_xl9y.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpbwm1yodj/tmpfh45d0gd']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpbwm1yodj/tmprl1_xl9y.h
# basename: tmprl1_xl9y.h
# enumeration-production
# EnumName: QmiWmsMessageProtocol
# enum_name: qmi_wms_message_protocol
# ENUMNAME: QMI_WMS_MESSAGE_PROTOCOL
# ENUMSHORT: WMS_MESSAGE_PROTOCOL
# ENUMPREFIX: QMI
# enumsince: 1.0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: QmiWmsMessageProtocol
# enum_name: qmi_wms_message_protocol
# ENUMNAME: QMI_WMS_MESSAGE_PROTOCOL
# ENUMSHORT: WMS_MESSAGE_PROTOCOL
# ENUMPREFIX: QMI
# enumsince: 1.0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: QMI_WMS_MESSAGE_PROTOCOL_CDMA
# valuenick: cdma
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: QmiWmsMessageProtocol
# enum_name: qmi_wms_message_protocol
# ENUMNAME: QMI_WMS_MESSAGE_PROTOCOL
# ENUMSHORT: WMS_MESSAGE_PROTOCOL
# ENUMPREFIX: QMI
# enumsince: 1.0
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
ok 36 __main__.TestRspMkenums.test_with_double_quotes
# glib-mkenums: /usr/bin/glib-mkenums
# tmpdir: /tmp/tmpvehzsii6
# rspfile: True
# /tmp/tmpvehzsii6/tmpal793zzs.h: 
#         typedef enum {
#           FOO_VALUE /*< nick="eek, a comma" >*/
#         } Foo;
#         
# /tmp/tmpvehzsii6/tmpnfo1r15x.template: 
# /*** BEGIN file-header ***/
# file-header
# /*** END file-header ***/
# 
# /*** BEGIN file-production ***/
# file-production
# filename: @filename@
# basename: @basename@
# /*** END file-production ***/
# 
# /*** BEGIN enumeration-production ***/
# enumeration-production
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END enumeration-production ***/
# 
# /*** BEGIN value-header ***/
# value-header
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-header ***/
# 
# /*** BEGIN value-production ***/
# value-production
# VALUENAME: @VALUENAME@
# valuenick: @valuenick@
# valuenum: @valuenum@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-production ***/
# 
# /*** BEGIN value-tail ***/
# value-tail
# EnumName: @EnumName@
# enum_name: @enum_name@
# ENUMNAME: @ENUMNAME@
# ENUMSHORT: @ENUMSHORT@
# ENUMPREFIX: @ENUMPREFIX@
# enumsince: @enumsince@
# type: @type@
# Type: @Type@
# TYPE: @TYPE@
# /*** END value-tail ***/
# 
# /*** BEGIN comment ***/
# comment
# comment: @comment@
# /*** END comment ***/
# 
# /*** BEGIN file-tail ***/
# file-tail
# /*** END file-tail ***/
# 
# Response file contains: --template /tmp/tmpvehzsii6/tmpnfo1r15x.template /tmp/tmpvehzsii6/tmpal793zzs.h
# Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpvehzsii6/tmpmd_lgc99']
# Return code: 0
# Output:
#  comment
# comment: 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.
# 
# 
# file-header
# file-production
# filename: /tmp/tmpvehzsii6/tmpal793zzs.h
# basename: tmpal793zzs.h
# enumeration-production
# EnumName: Foo
# enum_name: foo_
# ENUMNAME: FOO_
# ENUMSHORT: 
# ENUMPREFIX: FOO
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-header
# EnumName: Foo
# enum_name: foo_
# ENUMNAME: FOO_
# ENUMSHORT: 
# ENUMPREFIX: FOO
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# value-production
# VALUENAME: FOO_VALUE
# valuenick: eek, a comma
# valuenum: 0
# type: enum
# Type: Enum
# TYPE: ENUM
# value-tail
# EnumName: Foo
# enum_name: foo_
# ENUMNAME: FOO_
# ENUMSHORT: 
# ENUMPREFIX: FOO
# enumsince: 
# type: enum
# Type: Enum
# TYPE: ENUM
# file-tail
# 
# comment
# comment: Generated data ends here
# Error:
1..36
PASS: glib/mkenums.py.test
Running test: glib/dynamictests.test
TAP version 14
# random seed: R02Sce5b4128a2534857a8b798c64f4dfb94
1..2
# Start of GObject tests
ok 1 /GObject/threaded-dynamic-ref-unref-init
ok 2 /GObject/dynamic-interface-properties
# End of GObject tests
PASS: glib/dynamictests.test
Running test: glib/memory-settings-backend.test
TAP version 14
# random seed: R02S946ef43843bc9e586b0ec8c08c9e2bfa
1..1
# Start of memory-settings-backend tests
ok 1 /memory-settings-backend/extension-point-registered
# End of memory-settings-backend tests
PASS: glib/memory-settings-backend.test
Running test: glib/asyncqueue.test
TAP version 14
# random seed: R02S371fcac36a929f0d7c3e9c8a3cde62e9
1..7
# Start of asyncqueue tests
ok 1 /asyncqueue/basics
ok 2 /asyncqueue/sort
ok 3 /asyncqueue/destroy
ok 4 /asyncqueue/threads
Executing: glib/asyncqueue.test
ok 5 /asyncqueue/timed
ok 6 /asyncqueue/remove
ok 7 /asyncqueue/push_front
# End of asyncqueue tests
PASS: glib/asyncqueue.test
Running test: glib/utf8-performance.test
TAP version 14
# random seed: R02Sd3a1984913854180fd4cc74f56d41514
1..36
# Start of utf8 tests
# Start of perf tests
# Start of get_char tests
# max perf:    10.8 MB/s
ok 1 /utf8/perf/get_char/ascii
# max perf:    67.0 MB/s
ok 2 /utf8/perf/get_char/latin1
# max perf:   160.0 MB/s
ok 3 /utf8/perf/get_char/cyrillic
# max perf:   156.0 MB/s
ok 4 /utf8/perf/get_char/han
# End of get_char tests
# Start of get_char-backwards tests
# max perf:    43.0 MB/s
ok 5 /utf8/perf/get_char-backwards/ascii
# max perf:    67.0 MB/s
ok 6 /utf8/perf/get_char-backwards/latin1
# max perf:   160.0 MB/s
ok 7 /utf8/perf/get_char-backwards/cyrillic
# max perf:   156.0 MB/s
ok 8 /utf8/perf/get_char-backwards/han
# End of get_char-backwards tests
# Start of get_char_validated tests
# max perf:    43.0 MB/s
ok 9 /utf8/perf/get_char_validated/ascii
# max perf:    67.0 MB/s
ok 10 /utf8/perf/get_char_validated/latin1
# max perf:   160.0 MB/s
ok 11 /utf8/perf/get_char_validated/cyrillic
# max perf:   156.0 MB/s
ok 12 /utf8/perf/get_char_validated/han
# End of get_char_validated tests
# Start of utf8_to_ucs4 tests
# max perf:    43.0 MB/s
ok 13 /utf8/perf/utf8_to_ucs4/ascii
# max perf:    33.5 MB/s
ok 14 /utf8/perf/utf8_to_ucs4/latin1
# max perf:    80.0 MB/s
ok 15 /utf8/perf/utf8_to_ucs4/cyrillic
# max perf:   156.0 MB/s
ok 16 /utf8/perf/utf8_to_ucs4/han
# End of utf8_to_ucs4 tests
# Start of utf8_to_ucs4-sized tests
# max perf:    43.0 MB/s
ok 17 /utf8/perf/utf8_to_ucs4-sized/ascii
# max perf:    67.0 MB/s
ok 18 /utf8/perf/utf8_to_ucs4-sized/latin1
# max perf:    80.0 MB/s
ok 19 /utf8/perf/utf8_to_ucs4-sized/cyrillic
# max perf:   156.0 MB/s
ok 20 /utf8/perf/utf8_to_ucs4-sized/han
# End of utf8_to_ucs4-sized tests
# Start of utf8_to_ucs4_fast tests
# max perf:    43.0 MB/s
ok 21 /utf8/perf/utf8_to_ucs4_fast/ascii
# max perf:    67.0 MB/s
ok 22 /utf8/perf/utf8_to_ucs4_fast/latin1
# max perf:   160.0 MB/s
ok 23 /utf8/perf/utf8_to_ucs4_fast/cyrillic
# max perf:   156.0 MB/s
ok 24 /utf8/perf/utf8_to_ucs4_fast/han
# End of utf8_to_ucs4_fast tests
# Start of utf8_to_ucs4_fast-sized tests
# max perf:    43.0 MB/s
ok 25 /utf8/perf/utf8_to_ucs4_fast-sized/ascii
# max perf:    67.0 MB/s
ok 26 /utf8/perf/utf8_to_ucs4_fast-sized/latin1
# max perf:   160.0 MB/s
ok 27 /utf8/perf/utf8_to_ucs4_fast-sized/cyrillic
# max perf:   156.0 MB/s
ok 28 /utf8/perf/utf8_to_ucs4_fast-sized/han
# End of utf8_to_ucs4_fast-sized tests
# Start of utf8_validate tests
# max perf:     inf MB/s
ok 29 /utf8/perf/utf8_validate/ascii
# max perf:    67.0 MB/s
ok 30 /utf8/perf/utf8_validate/latin1
# max perf:   160.0 MB/s
ok 31 /utf8/perf/utf8_validate/cyrillic
# max perf:   156.0 MB/s
ok 32 /utf8/perf/utf8_validate/han
# End of utf8_validate tests
# Start of utf8_validate-sized tests
# max perf:    43.0 MB/s
ok 33 /utf8/perf/utf8_validate-sized/ascii
# max perf:    67.0 MB/s
ok 34 /utf8/perf/utf8_validate-sized/latin1
# max perf:   160.0 MB/s
ok 35 /utf8/perf/utf8_validate-sized/cyrillic
# max perf:     inf MB/s
ok 36 /utf8/perf/utf8_validate-sized/han
# End of utf8_validate-sized tests
# End of perf tests
# End of utf8 tests
PASS: glib/utf8-performance.test
Running test: glib/portal-support-snap.test
TAP version 14
# random seed: R02Sf6e7f1cf2447e8d9d0590c01b6a3b8cc
1..7
# Start of portal-support tests
# Start of snap tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/no-snapctl/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/no-snapctl: No such file or directory
ok 1 /portal-support/snap/no-snapctl
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/none/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/none/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/none/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/none/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/none/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/none/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/none/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/none/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/none/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/none/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap/none/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/none: No such file or directory
ok 2 /portal-support/snap/none
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/all/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/all/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/all/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/all/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/all/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/all/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/all/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/all/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/all/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/all/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap/all/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/all: No such file or directory
ok 3 /portal-support/snap/all
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/desktop-only/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/desktop-only/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap/desktop-only/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/desktop-only: No such file or directory
ok 4 /portal-support/snap/desktop-only
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/network-only/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/network-only/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/network-only/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/network-only/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/network-only/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/network-only/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/network-only/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/network-only/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/network-only/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/network-only/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap/network-only/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/network-only: No such file or directory
ok 5 /portal-support/snap/network-only
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap/gsettings-only/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/gsettings-only: No such file or directory
ok 6 /portal-support/snap/gsettings-only
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/system-config1:/var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/system-data1:/var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
# Created snapctl in /var/volatile/tmp/portal-support/snap/updates-dynamically/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap/updates-dynamically: No such file or directory
ok 7 /portal-support/snap/updates-dynamically
# End of snap tests
# End of portal-support tests
PASS: glib/portal-support-snap.test
Running test: glib/gdbus-connection-flush.test
TAP version 14
# random seed: R02Se392138b27062c4c393e3e5c90179802
1..2
# Start of gdbus tests
# Start of connection tests
# Start of flush tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/system-config1:/var/volatile/tmp/gdbus/connection/flush/busy/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/system-data1:/var/volatile/tmp/gdbus/connection/flush/busy/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/connection/flush/busy/.dirs/runtime
ok 1 /gdbus/connection/flush/busy
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/system-config1:/var/volatile/tmp/gdbus/connection/flush/idle/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/system-data1:/var/volatile/tmp/gdbus/connection/flush/idle/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/connection/flush/idle/.dirs/runtime
ok 2 /gdbus/connection/flush/idle
# End of flush tests
# End of connection tests
# End of gdbus tests
PASS: glib/gdbus-connection-flush.test
Running test: glib/volumemonitor.test
TAP version 14
# random seed: R02Sed2e6ce6140c1b72058d28edd7058bca
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
1..3
# Start of volumemonitor tests
ok 1 /volumemonitor/connected_drives
ok 2 /volumemonitor/volumes
ok 3 /volumemonitor/mounts
# End of volumemonitor tests
PASS: glib/volumemonitor.test
Running test: glib/mount-operation.test
TAP version 14
# random seed: R02S419a8e4b88cf8d3daca0a51a4a5d3082
1..2
# Start of mount-operation tests
ok 1 /mount-operation/construction
ok 2 /mount-operation/properties
# End of mount-operation tests
PASS: glib/mount-operation.test
Running test: glib/init.test
TAP version 14
# random seed: R02S22c7ce26f988102371a7c3fccd5e51c2
1..2
# Start of thread tests
# Start of deprecated tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/thread/deprecated/init/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/thread/deprecated/init/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/thread/deprecated/init/.dirs/system-config1:/var/volatile/tmp/thread/deprecated/init/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/thread/deprecated/init/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/thread/deprecated/init/.dirs/system-data1:/var/volatile/tmp/thread/deprecated/init/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/thread/deprecated/init/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/thread/deprecated/init/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/thread/deprecated/init/.dirs/runtime
ok 1 /thread/deprecated/init
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/system-config1:/var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/system-data1:/var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/thread/deprecated/init-with-errorcheck-mutexes/.dirs/runtime
ok 2 /thread/deprecated/init-with-errorcheck-mutexes
# End of deprecated tests
# End of thread tests
PASS: glib/init.test
Running test: glib/gsocketclient-slow.test
TAP version 14
# random seed: R02S6b7e6706a57da503f2feddfc573e7a8a
1..4
# Start of socket-client tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3184
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyProxyResolver) for ?gio-proxy-resolver?
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x558e64397340 and GSocketClientAsyncConnectData 0x558e643726e0
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x558e6439aef0 for GSocketClientAsyncConnectData 0x558e643726e0
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: Connection attempt delay reached, trying another enumeration
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Connection attempt failed: Connection refused
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x558e6439aef0 for GSocketClientAsyncConnectData 0x558e643726e0
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Connection attempt failed: Connection refused
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Could not connect to localhost: Connection refused
ok 1 /socket-client/connection-fail
# slow test /socket-client/connection-fail executed in 1.20 secs
# Start of happy-eyeballs tests
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x558e64399c30 and GSocketClientAsyncConnectData 0x558e6439c630
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x558e6439c5d0 for GSocketClientAsyncConnectData 0x558e6439c630
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: Connection attempt delay reached, trying another enumeration
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 2 /socket-client/happy-eyeballs/slow
# slow test /socket-client/happy-eyeballs/slow executed in 0.60 secs
# Start of cancellation tests
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x558e6439a580 and GSocketClientAsyncConnectData 0x558e6439e570
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Operation was cancelled
ok 3 /socket-client/happy-eyeballs/cancellation/instant
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x558e64399a80 and GSocketClientAsyncConnectData 0x558e6439e210
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x558e6439ecc0 for GSocketClientAsyncConnectData 0x558e6439e210
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: Connection attempt delay reached, trying another enumeration
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection cancelled!
ok 4 /socket-client/happy-eyeballs/cancellation/delayed
# slow test /socket-client/happy-eyeballs/cancellation/delayed executed in 0.60 secs
# End of cancellation tests
# End of happy-eyeballs tests
# End of socket-client tests
PASS: glib/gsocketclient-slow.test
Running test: glib/g-icon.test
TAP version 14
# random seed: R02S614bde6b2a5ae8b2636b0864c1e07ceb
1..6
# Start of icons tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /icons/to-string
ok 2 /icons/serialize
ok 3 /icons/themed
ok 4 /icons/emblemed
ok 5 /icons/file
ok 6 /icons/bytes
# End of icons tests
PASS: glib/g-icon.test
Running test: glib/cmph-bdz.test
TAP version 14
# random seed: R02S98e0f55b36dba5b5ae2e8e1643018f14
1..2
# Start of cmph-bdz tests
ok 1 /cmph-bdz/search
ok 2 /cmph-bdz/search-packed
# End of cmph-bdz tests
PASS: glib/cmph-bdz.test
Running test: glib/memory-input-stream.test
TAP version 14
# random seed: R02S8fb826e852a6ff9f96dbbc824ba36c02
1..6
# Start of memory-input-stream tests
ok 1 /memory-input-stream/read-chunks
ok 2 /memory-input-stream/async
ok 3 /memory-input-stream/seek
ok 4 /memory-input-stream/truncate
ok 5 /memory-input-stream/read-bytes
ok 6 /memory-input-stream/from-bytes
# End of memory-input-stream tests
PASS: glib/memory-input-stream.test
Running test: glib/gthash.test
TAP version 14
# random seed: R02S9510504f6805006036100f0f77870583
1..1
# Start of gthash tests
ok 1 /gthash/build-retrieve
# End of gthash tests
PASS: glib/gthash.test
Running test: glib/gdatetime.test
TAP version 14
# random seed: R02S480984af293a168c462699135b0b3030
1..68
# Start of GDateTime tests
# Bug Reference: http://bugzilla.gnome.org/702674
ok 1 /GDateTime/invalid
ok 2 /GDateTime/add_days
ok 3 /GDateTime/add_full
ok 4 /GDateTime/add_hours
ok 5 /GDateTime/add_minutes
ok 6 /GDateTime/add_months
ok 7 /GDateTime/add_seconds
ok 8 /GDateTime/add_weeks
ok 9 /GDateTime/add_years
ok 10 /GDateTime/compare
ok 11 /GDateTime/diff
ok 12 /GDateTime/equal
ok 13 /GDateTime/get_day_of_week
ok 14 /GDateTime/get_day_of_month
ok 15 /GDateTime/get_day_of_year
ok 16 /GDateTime/get_hour
ok 17 /GDateTime/get_microsecond
ok 18 /GDateTime/get_minute
ok 19 /GDateTime/get_month
ok 20 /GDateTime/get_second
ok 21 /GDateTime/get_utc_offset
ok 22 /GDateTime/get_year
ok 23 /GDateTime/hash
ok 24 /GDateTime/new_from_unix
ok 25 /GDateTime/new_from_unix_utc
ok 26 /GDateTime/new_from_timeval
ok 27 /GDateTime/new_from_timeval_utc
ok 28 /GDateTime/new_from_iso8601
ok 29 /GDateTime/new_full
ok 30 /GDateTime/now
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2215
ok 31 /GDateTime/test-6-days-until-end-of-the-month
# %a -> expected: Sat
# %a -> actual:   Sat
# %A -> expected: Saturday
# %A -> actual:   Saturday
# %b -> expected: Oct
# %b -> actual:   Oct
# %B -> expected: October
# %B -> actual:   October
# %d -> expected: 24
# %d -> actual:   24
# %d -> expected: 01
# %d -> actual:   01
# %e -> expected: 24
# %e -> actual:   24
# %e -> expected:  1
# %e -> actual:    1
# %f -> expected: 001000
# %f -> actual:   001000
# %h -> expected: Oct
# %h -> actual:   Oct
# %H -> expected: 00
# %H -> actual:   00
# %H -> expected: 15
# %H -> actual:   15
# %I -> expected: 12
# %I -> actual:   12
# %I -> expected: 12
# %I -> actual:   12
# %I -> expected: 03
# %I -> actual:   03
# %j -> expected: 297
# %j -> actual:   297
# %k -> expected:  0
# %k -> actual:    0
# %k -> expected: 13
# %k -> actual:   13
# %l -> expected: 12
# %l -> actual:   12
# %I -> expected: 12
# %I -> actual:   12
# %l -> expected:  1
# %l -> actual:    1
# %l -> expected: 10
# %l -> actual:   10
# %m -> expected: 10
# %m -> actual:   10
# %M -> expected: 00
# %M -> actual:   00
# %p -> expected: AM
# %p -> actual:   AM
# %p -> expected: PM
# %p -> actual:   PM
# %P -> expected: am
# %P -> actual:   am
# %P -> expected: pm
# %P -> actual:   pm
# %r -> expected: 12:00:00 AM
# %r -> actual:   12:00:00 AM
# %r -> expected: 01:13:13 PM
# %r -> actual:   01:13:13 PM
# %R -> expected: 00:00
# %R -> actual:   00:00
# %R -> expected: 13:13
# %R -> actual:   13:13
# %S -> expected: 00
# %S -> actual:   00
# %t -> expected: 	
# %t -> actual:   	
# %u -> expected: 6
# %u -> actual:   6
# %x -> expected: 10/24/09
# %x -> actual:   10/24/09
# %X -> expected: 00:00:00
# %X -> actual:   00:00:00
# %X -> expected: 13:14:15
# %X -> actual:   13:14:15
# %y -> expected: 09
# %y -> actual:   09
# %Y -> expected: 2009
# %Y -> actual:   2009
# %% -> expected: %
# %% -> actual:   %
# % -> expected: 
# % -> actual:   
# %9 -> expected: (null)
# %9 -> actual:   (null)
# %Z -> expected: UTC
# %Z -> actual:   UTC
# %#Z %Z -> expected: utc UTC
# %#Z %Z -> actual:   utc UTC
ok 32 /GDateTime/printf
# %a -> expected: 
# %a -> actual:   
# %A -> expected: 
# %A -> actual:   
# %b -> expected: 10
# %b -> actual:   10
# %B -> expected: 10
# %B -> actual:   10
# %c -> expected: 2009ǯ1024 0000ʬ00
# %c -> actual:   2009ǯ1024 0000ʬ00
# %C -> expected: 20
# %C -> actual:   20
# %d -> expected: 24
# %d -> actual:   24
# %d -> expected: 01
# %d -> actual:   01
# %e -> expected: 24
# %e -> actual:   24
# %h -> expected: 10
# %h -> actual:   10
# %H -> expected: 00
# %H -> actual:   00
# %H -> expected: 15
# %H -> actual:   15
# %I -> expected: 12
# %I -> actual:   12
# %I -> expected: 12
# %I -> actual:   12
# %I -> expected: 03
# %I -> actual:   03
# %j -> expected: 297
# %j -> actual:   297
# %k -> expected: ?0
# %k -> actual:   ?0
# %k -> expected: 13
# %k -> actual:   13
# %l -> expected: 12
# %l -> actual:   12
# %I -> expected: 12
# %I -> actual:   12
# %l -> expected: ?1
# %l -> actual:   ?1
# %l -> expected: 10
# %l -> actual:   10
# %m -> expected: 10
# %m -> actual:   10
# %M -> expected: 00
# %M -> actual:   00
# %p -> expected: 
# %p -> actual:   
# %p -> expected: 
# %p -> actual:   
# %P -> expected: 
# %P -> actual:   
# %P -> expected: 
# %P -> actual:   
# %r -> expected: 1200ʬ00
# %r -> actual:   1200ʬ00
# %r -> expected: 0113ʬ13
# %r -> actual:   0113ʬ13
# %R -> expected: 00:00
# %R -> actual:   00:00
# %R -> expected: 13:13
# %R -> actual:   13:13
# %S -> expected: 00
# %S -> actual:   00
# %t -> expected: 	
# %t -> actual:   	
# %u -> expected: 6
# %u -> actual:   6
# %x -> expected: 2009ǯ1024
# %x -> actual:   2009ǯ1024
# %X -> expected: 0000ʬ00
# %X -> actual:   0000ʬ00
# %X -> expected: 1314ʬ15
# %X -> actual:   1314ʬ15
# %y -> expected: 09
# %y -> actual:   09
# %Y -> expected: 2009
# %Y -> actual:   2009
# %% -> expected: %
# %% -> actual:   %
# % -> expected: 
# % -> actual:   
# %9 -> expected: (null)
# %9 -> actual:   (null)
# %Ec -> expected: ʿ21ǯ1024 0000ʬ00
# %Ec -> actual:   ʿ21ǯ1024 0000ʬ00
# %EC -> expected: ʿ
# %EC -> actual:   ʿ
# %Ex -> expected: ʿ21ǯ1024
# %Ex -> actual:   ʿ21ǯ1024
# %EX -> expected: 0000ʬ00
# %EX -> actual:   0000ʬ00
# %Ey -> expected: 21
# %Ey -> actual:   21
# %EY -> expected: ʿ21ǯ
# %EY -> actual:   ʿ21ǯ
ok 33 /GDateTime/non_utf8_printf
# ???? -> expected: ????
# ???? -> actual:   ????
# %H?%M -> expected: 23?15
# %H?%M -> actual:   23?15
GLib: Cannot convert message: Konwersja z zestawu znaków „UTF-8” na zestaw „ISO-8859-2” nie jest obsługiwana
# %H∶%M -> expected: 23∶15
# %H∶%M -> actual:   23∶15
ok 34 /GDateTime/format_unrepresentable
ok 35 /GDateTime/format_iso8601
ok 36 /GDateTime/strftime
# %d -> expected: 01
# %d -> actual:   01
# %_d -> expected:  1
# %_d -> actual:    1
# %-d -> expected: 1
# %-d -> actual:   1
# %0d -> expected: 01
# %0d -> actual:   01
# %d -> expected: 21
# %d -> actual:   21
# %_d -> expected: 21
# %_d -> actual:   21
# %-d -> expected: 21
# %-d -> actual:   21
# %0d -> expected: 21
# %0d -> actual:   21
# %e -> expected:  1
# %e -> actual:    1
# %_e -> expected:  1
# %_e -> actual:    1
# %-e -> expected: 1
# %-e -> actual:   1
# %0e -> expected: 01
# %0e -> actual:   01
# %e -> expected: 21
# %e -> actual:   21
# %_e -> expected: 21
# %_e -> actual:   21
# %-e -> expected: 21
# %-e -> actual:   21
# %0e -> expected: 21
# %0e -> actual:   21
# %a -> expected: Thu
# %a -> actual:   Thu
# %^a -> expected: THU
# %^a -> actual:   THU
# %#a -> expected: THU
# %#a -> actual:   THU
# %A -> expected: Thursday
# %A -> actual:   Thursday
# %^A -> expected: THURSDAY
# %^A -> actual:   THURSDAY
# %#A -> expected: THURSDAY
# %#A -> actual:   THURSDAY
# %b -> expected: Jan
# %b -> actual:   Jan
# %^b -> expected: JAN
# %^b -> actual:   JAN
# %#b -> expected: JAN
# %#b -> actual:   JAN
# %B -> expected: January
# %B -> actual:   January
# %^B -> expected: JANUARY
# %^B -> actual:   JANUARY
# %#B -> expected: JANUARY
# %#B -> actual:   JANUARY
# %h -> expected: Jan
# %h -> actual:   Jan
# %^h -> expected: JAN
# %^h -> actual:   JAN
# %#h -> expected: JAN
# %#h -> actual:   JAN
# %Z -> expected: UTC
# %Z -> actual:   UTC
# %^Z -> expected: UTC
# %^Z -> actual:   UTC
# %#Z -> expected: utc
# %#Z -> actual:   utc
# %H -> expected: 01
# %H -> actual:   01
# %_H -> expected:  1
# %_H -> actual:    1
# %-H -> expected: 1
# %-H -> actual:   1
# %0H -> expected: 01
# %0H -> actual:   01
# %H -> expected: 21
# %H -> actual:   21
# %_H -> expected: 21
# %_H -> actual:   21
# %-H -> expected: 21
# %-H -> actual:   21
# %0H -> expected: 21
# %0H -> actual:   21
# %I -> expected: 01
# %I -> actual:   01
# %_I -> expected:  1
# %_I -> actual:    1
# %-I -> expected: 1
# %-I -> actual:   1
# %0I -> expected: 01
# %0I -> actual:   01
# %I -> expected: 11
# %I -> actual:   11
# %_I -> expected: 11
# %_I -> actual:   11
# %-I -> expected: 11
# %-I -> actual:   11
# %0I -> expected: 11
# %0I -> actual:   11
# %k -> expected:  1
# %k -> actual:    1
# %_k -> expected:  1
# %_k -> actual:    1
# %-k -> expected: 1
# %-k -> actual:   1
# %0k -> expected: 01
# %0k -> actual:   01
# %l -> expected:  1
# %l -> actual:    1
# %_l -> expected:  1
# %_l -> actual:    1
# %-l -> expected: 1
# %-l -> actual:   1
# %0l -> expected: 01
# %0l -> actual:   01
# %l -> expected: 11
# %l -> actual:   11
# %_l -> expected: 11
# %_l -> actual:   11
# %-l -> expected: 11
# %-l -> actual:   11
# %0l -> expected: 11
# %0l -> actual:   11
# %p -> expected: AM
# %p -> actual:   AM
# %^p -> expected: AM
# %^p -> actual:   AM
# %#p -> expected: am
# %#p -> actual:   am
# %P -> expected: am
# %P -> actual:   am
# %^P -> expected: AM
# %^P -> actual:   AM
# %#P -> expected: am
# %#P -> actual:   am
# %OH -> expected: ۲۳
# %OH -> actual:   ۲۳
# %OI -> expected: ۱۱
# %OI -> actual:   ۱۱
# %OM -> expected: ۰۰
# %OM -> actual:   ۰۰
# %Om -> expected: ۰۷
# %Om -> actual:   ۰۷
# %0Om -> expected: ۰۷
# %0Om -> actual:   ۰۷
# %-Om -> expected: ۷
# %-Om -> actual:   ۷
# %_Om -> expected:  ۷
# %_Om -> actual:    ۷
# %c -> expected: thu 01 jan 2009 00:00:00 utc
# %c -> actual:   Thu 01 Jan 2009 00:00:00 UTC
# %Ec -> expected: thu 01 jan 2009 00:00:00 utc
# %Ec -> actual:   Thu 01 Jan 2009 00:00:00 UTC
# %C -> expected: 20
# %C -> actual:   20
# %EC -> expected: 20
# %EC -> actual:   20
# %x -> expected: 02/01/09
# %x -> actual:   02/01/09
# %Ex -> expected: 02/01/09
# %Ex -> actual:   02/01/09
# %X -> expected: 01:02:03
# %X -> actual:   01:02:03
# %EX -> expected: 01:02:03
# %EX -> actual:   01:02:03
# %y -> expected: 09
# %y -> actual:   09
# %Ey -> expected: 09
# %Ey -> actual:   09
# %Y -> expected: 2009
# %Y -> actual:   2009
# %EY -> expected: 2009
# %EY -> actual:   2009
ok 37 /GDateTime/modifiers # SKIP locale gu_IN not available, skipping O modifier tests
# Bug Reference: http://bugzilla.gnome.org/749206
# %B -> expected: January
# %B -> actual:   January
# %OB -> expected: February
# %OB -> actual:   February
# %b -> expected: Mar
# %b -> actual:   Mar
# %Ob -> expected: Apr
# %Ob -> actual:   Apr
# %h -> expected: May
# %h -> actual:   May
# %Oh -> expected: Jun
# %Oh -> actual:   Jun
# %B -> expected: Juli
# %B -> actual:   Juli
# %OB -> expected: August
# %OB -> actual:   August
# %b -> expected: Sep
# %b -> actual:   Sep
# %Ob -> expected: Okt
# %Ob -> actual:   Okt
# %h -> expected: Nov
# %h -> actual:   Nov
# %Oh -> expected: Dez
# %Oh -> actual:   Dez
# %B -> expected: enero
# %B -> actual:   enero
# %OB -> expected: febrero
# %OB -> actual:   febrero
# %b -> expected: mar
# %b -> actual:   mar
# %Ob -> expected: abr
# %Ob -> actual:   abr
# %h -> expected: may
# %h -> actual:   may
# %Oh -> expected: jun
# %Oh -> actual:   jun
# %B -> expected: juillet
# %B -> actual:   juillet
# %OB -> expected: août
# %OB -> actual:   août
# %b -> expected: sept.
# %b -> actual:   sept.
# %Ob -> expected: oct.
# %Ob -> actual:   oct.
# %h -> expected: nov.
# %h -> actual:   nov.
# %Oh -> expected: déc.
# %Oh -> actual:   déc.
# %B -> expected: Ιανουαρίου
# %B -> actual:   Ιανουαρίου
# %B -> expected: Φεβρουαρίου
# %B -> actual:   Φεβρουαρίου
# %B -> expected: Μαρτίου
# %B -> actual:   Μαρτίου
# %OB -> expected: Απρίλιος
# %OB -> actual:   Απρίλιος
# %OB -> expected: Μάιος
# %OB -> actual:   Μάιος
# %OB -> expected: Ιούνιος
# %OB -> actual:   Ιούνιος
# %b -> expected: Ιουλ
# %b -> actual:   Ιουλ
# %Ob -> expected: Αύγ
# %Ob -> actual:   Αύγ
# %B -> expected: svibnja
# %B -> actual:   svibnja
# %B -> expected: lipnja
# %B -> actual:   lipnja
# %B -> expected: srpnja
# %B -> actual:   srpnja
# %OB -> expected: Kolovoz
# %OB -> actual:   kolovoz
# %OB -> expected: Rujan
# %OB -> actual:   rujan
# %OB -> expected: Listopad
# %OB -> actual:   listopad
# %b -> expected: Stu
# %b -> actual:   stu
# %Ob -> expected: Pro
# %Ob -> actual:   pro
# %B -> expected: sausio
# %B -> actual:   sausio
# %B -> expected: vasario
# %B -> actual:   vasario
# %B -> expected: kovo
# %B -> actual:   kovo
# %OB -> expected: balandis
# %OB -> actual:   balandis
# %OB -> expected: gegužė
# %OB -> actual:   gegužė
# %OB -> expected: birželis
# %OB -> actual:   birželis
# %b -> expected: liep.
# %b -> actual:   liep.
# %Ob -> expected: rugp.
# %Ob -> actual:   rugp.
# %B -> expected: maja
# %B -> actual:   maja
# %B -> expected: czerwca
# %B -> actual:   czerwca
# %B -> expected: lipca
# %B -> actual:   lipca
# %OB -> expected: sierpień
# %OB -> actual:   sierpień
# %OB -> expected: wrzesień
# %OB -> actual:   wrzesień
# %OB -> expected: październik
# %OB -> actual:   październik
# %b -> expected: lis
# %b -> actual:   lis
# %Ob -> expected: gru
# %Ob -> actual:   gru
# %B -> expected: января
# %B -> actual:   января
# %B -> expected: февраля
# %B -> actual:   февраля
# %B -> expected: марта
# %B -> actual:   марта
# %OB -> expected: Апрель
# %OB -> actual:   Апрель
# %OB -> expected: Май
# %OB -> actual:   Май
# %OB -> expected: Июнь
# %OB -> actual:   Июнь
# %b -> expected: июл
# %b -> actual:   июл
# %Ob -> expected: авг
# %Ob -> actual:   авг
# %b -> expected: мая
# %b -> actual:   мая
# %Ob -> expected: май
# %Ob -> actual:   май
ok 38 /GDateTime/month_names
ok 39 /GDateTime/to_local
ok 40 /GDateTime/to_unix
ok 41 /GDateTime/to_timeval
ok 42 /GDateTime/to_utc
ok 43 /GDateTime/now_utc
ok 44 /GDateTime/dst
# Bug Reference: http://bugzilla.gnome.org/642935
ok 45 /GDateTime/test_z
ok 46 /GDateTime/test-all-dates
ok 47 /GDateTime/unix_usec
# Start of new_from_unix tests
# Bug Reference: http://bugzilla.gnome.org/782089
ok 48 /GDateTime/new_from_unix/overflow
# End of new_from_unix tests
# Start of new_from_timeval tests
# Bug Reference: http://bugzilla.gnome.org/782089
# Maximum supported GTimeVal.tv_sec = 253402300799
ok 49 /GDateTime/new_from_timeval/overflow
# End of new_from_timeval tests
# Start of new_from_iso8601 tests
# /GDateTime/new_from_iso8601/2 summary: Further parser tests for g_date_time_new_from_iso8601(), checking success and failure using test vectors.
# Vector 0: 1990-11-01T10:21:17Z
# Vector 1: 19901101T102117Z
# Vector 2: 1970-01-01T00:00:17.12Z
# Vector 3: 1970-01-01T00:00:17.1234Z
# Vector 4: 1970-01-01T00:00:17.123456Z
# Vector 5: 1980-02-22T12:36:00+02:00
# Vector 6: 1990-12-31T15:59:60-08:00
# Vector 7:    
# Vector 8: x
# Vector 9: 123x
# Vector 10: 2001-10+x
# Vector 11: 1980-02-22T
# Vector 12: 2001-10-08Tx
# Vector 13: 2001-10-08T10:11x
# Vector 14: Wed Dec 19 17:20:20 GMT 2007
# Vector 15: 1980-02-22T10:36:00Zulu
# Vector 16: 2T0+819855292164632335
# Vector 17: 2018-08-03T14:08:05.446178377+01:00
# Vector 18: 2147483648-08-03T14:08:05.446178377+01:00
# Vector 19: 2018-13-03T14:08:05.446178377+01:00
# Vector 20: 2018-00-03T14:08:05.446178377+01:00
# Vector 21: 2018-08-00T14:08:05.446178377+01:00
# Vector 22: 2018-08-32T14:08:05.446178377+01:00
# Vector 23: 2018-08-03T24:08:05.446178377+01:00
# Vector 24: 2018-08-03T14:60:05.446178377+01:00
# Vector 25: 2018-08-03T14:08:63.446178377+01:00
# Vector 26: 2018-08-03T14:08:05.446178377+100:00
# Vector 27: 20180803T140805.446178377+0100
# Vector 28: 21474836480803T140805.446178377+0100
# Vector 29: 20181303T140805.446178377+0100
# Vector 30: 20180003T140805.446178377+0100
# Vector 31: 20180800T140805.446178377+0100
# Vector 32: 20180832T140805.446178377+0100
# Vector 33: 20180803T240805.446178377+0100
# Vector 34: 20180803T146005.446178377+0100
# Vector 35: 20180803T140863.446178377+0100
# Vector 36: 20180803T140805.446178377+10000
# Vector 37: -0005-01-01T00:00:00Z
# Vector 38: 2018-08-06
# Vector 39: 20180803T140805,446178377+0100
# Vector 40: 2018-08-03T14:08:05.446178377-01:00
# Vector 41: 2018-08-03T14:08:05.446178377 01:00
# Vector 42: 1990-11-01T10:21:17
# Vector 43: 1719W462 407777-07
# Vector 44: 4011090 260528Z
# Vector 45: 0000W011 228214-22
ok 50 /GDateTime/new_from_iso8601/2
# End of new_from_iso8601 tests
# Start of format_mixed tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2055
# Unavailable 'de_DE.iso88591' locale
ok 51 /GDateTime/format_mixed/utf8_time_non_utf8_messages # SKIP required locale not available, skipping tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2055
# %b -> expected: mar
# %b -> actual:   Mar
# %B -> expected: march
# %B -> actual:   March
ok 52 /GDateTime/format_mixed/utf8_time_utf8_messages
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2055
# Unavailable 'de_DE.iso88591' locale
ok 53 /GDateTime/format_mixed/non_utf8_time_non_utf8_messages # SKIP required locale not available, skipping tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2055
# Unavailable 'de_DE.iso88591' locale
ok 54 /GDateTime/format_mixed/non_utf8_time_utf8_messages # SKIP required locale not available, skipping tests
# End of format_mixed tests
# Start of strftime tests
# %r -> expected: (null)
# %r -> actual:   (null)
ok 55 /GDateTime/strftime/error_handling
# End of strftime tests
# Start of eras tests
ok 56 /GDateTime/eras/japan # SKIP locale ja_JP.utf-8 not available, skipping Japanese era tests
# %Ec -> expected: วันพฤหัสบดีที่  1 มิถุนายน พ.ศ. 2566, 00.00.00 น.
# %Ec -> actual:   วันพฤหัสบดีที่  1 มิถุนายน พ.ศ. 2566, 00.00.00 น.
# %EC -> expected: พ.ศ.
# %EC -> actual:   พ.ศ.
# %Ex -> expected:  1 มิ.ย. 2566
# %Ex -> actual:    1 มิ.ย. 2566
# %EX -> expected: 00.00.00 น.
# %EX -> actual:   00.00.00 น.
# %Ey -> expected: 2566
# %Ey -> actual:   2566
# %EY -> expected: พ.ศ. 2566
# %EY -> actual:   พ.ศ. 2566
# %Ex -> expected:  1 มิ.ย. 544
# %Ex -> actual:    1 มิ.ย. 544
ok 57 /GDateTime/eras/thailand
# Vector 0: 
# Vector 1: +:1:-543/01/01:+*:พ.ศ.:%EC %Ey
# Vector 2: +:2:2020/01/01:+*:令和:%EC%Ey年;+:1:2019/05/01:2019/12/31:令和:%EC元年;+:2:1990/01/01:2019/04/30:平成:%EC%Ey年;+:1:1989/01/08:1989/12/31:平成:%EC元年;+:2:1927/01/01:1989/01/07:昭和:%EC%Ey年;+:1:1926/12/25:1926/12/31:昭和:%EC元年;+:2:1913/01/01:1926/12/24:大正:%EC%Ey年;+:1:1912/07/30:1912/12/31:大正:%EC元年;+:6:1873/01/01:1912/07/29:明治:%EC%Ey年;+:1:0001/01/01:1872/12/31:西暦:%EC%Ey年;+:1:-0001/12/31:-*:紀元前:%EC%Ey年
# Vector 3: -:2:2020/01/01:-*:令和:%EC%Ey年
# Vector 4: +:2:2020/01/01:2020/01/01:令和:%EC%Ey年
# Vector 5: +:2:+2020/01/01:+*:令和:%EC%Ey年
# Vector 6: .:2:2020/01/01:+*:令和:%EC%Ey年
# Vector 7: +.2:2020/01/01:+*:令和:%EC%Ey年
# Vector 8: +
# Vector 9: +:
# Vector 10: +::
# Vector 11: +:200
# Vector 12: +:2nonsense
# Vector 13: +:2nonsense:
# Vector 14: +:2:
# Vector 15: +:2::
# Vector 16: +:2:2020-01/01:+*:令和:%EC%Ey年
# Vector 17: +:2:2020nonsense/01/01:+*:令和:%EC%Ey年
# Vector 18: +:2:2020:+*:令和:%EC%Ey年
# Vector 19: +:2:18446744073709551615/01/01:+*:令和:%EC%Ey年
# Vector 20: +:2:2020/01-01:+*:令和:%EC%Ey年
# Vector 21: +:2:2020/01nonsense/01:+*:令和:%EC%Ey年
# Vector 22: +:2:2020/01:+*:令和:%EC%Ey年
# Vector 23: +:2:2020/00/01:+*:令和:%EC%Ey年
# Vector 24: +:2:2020/13/01:+*:令和:%EC%Ey年
# Vector 25: +:2:2020/01/00:+*:令和:%EC%Ey年
# Vector 26: +:2:2020/01/32:+*:令和:%EC%Ey年
# Vector 27: +:2:2020/01/01nonsense:+*:令和:%EC%Ey年
# Vector 28: +:2:2020/01/01
# Vector 29: +:2:2020/01/01:
# Vector 30: +:2:2020/01/01::
# Vector 31: +:2:2020/01/01:2021-01-01:令和:%EC%Ey年
# Vector 32: +:2:2020/01/01:+*
# Vector 33: +:2:2020/01/01:+*:
# Vector 34: +:2:2020/01/01:+*::
# Vector 35: +:2:2020/01/01:+*:令和
# Vector 36: +:2:2020/01/01:+*:令和:
# Vector 37: +:2:2020/01/01:+*:令和:;
ok 58 /GDateTime/eras/parsing
# End of eras tests
# End of GDateTime tests
# Start of GTimeZone tests
ok 59 /GTimeZone/find-interval
ok 60 /GTimeZone/adjust-time
ok 61 /GTimeZone/no-header
ok 62 /GTimeZone/no-header-identifier
ok 63 /GTimeZone/posix-parse
# Bug Reference: http://bugzilla.gnome.org/697715
ok 64 /GTimeZone/floating-point
# System time zone identifier: Universal
ok 65 /GTimeZone/identifier
# Vector 0: -158400
# Vector 1: -10000
# Vector 2: -3600
# Vector 3: -61
# Vector 4: -60
# Vector 5: -59
# Vector 6: 0
# Vector 7: 59
# Vector 8: 60
# Vector 9: 61
# Vector 10: 3600
# Vector 11: 10000
# Vector 12: 158400
ok 66 /GTimeZone/new-offset
# /GTimeZone/parse-rfc8536 summary: Test parsing time zone files in RFC 8536 version 3 format
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2129
ok 67 /GTimeZone/parse-rfc8536
# /GTimeZone/caching summary: GTimeZone instances are cached
ok 68 /GTimeZone/caching
# End of GTimeZone tests
PASS: glib/gdatetime.test
Running test: glib/regex.test
TAP version 14
# random seed: R02Sa56d869ac84edb73882a56788c3a9649
1..848
# Start of regex tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 1 /regex/properties
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 2 /regex/class
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 3 /regex/lookahead
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 4 /regex/lookbehind
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 5 /regex/subpattern
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 6 /regex/condition
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 7 /regex/recursion
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=640489
ok 8 /regex/multiline
ok 9 /regex/explicit-crlf
ok 10 /regex/max-lookbehind
ok 11 /regex/compile-errors
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 12 /regex/jit-unsupported-matching
# /regex/unmatched-named-subpattern summary: Test that unmatched subpatterns can still be queried
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2881
ok 13 /regex/unmatched-named-subpattern
# /regex/compiled-regex-after-jit-failure summary: Test that failed OPTIMIZE regex doesn't cause issues on subsequent matches
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2824
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 14 /regex/compiled-regex-after-jit-failure
# Start of new tests
ok 15 /regex/new/1
ok 16 /regex/new/2
ok 17 /regex/new/3
ok 18 /regex/new/4
ok 19 /regex/new/5
ok 20 /regex/new/6
ok 21 /regex/new/7
ok 22 /regex/new/8
ok 23 /regex/new/9
ok 24 /regex/new/10
ok 25 /regex/new/11
ok 26 /regex/new/12
ok 27 /regex/new/13
ok 28 /regex/new/14
ok 29 /regex/new/15
ok 30 /regex/new/16
ok 31 /regex/new/17
ok 32 /regex/new/18
ok 33 /regex/new/19
ok 34 /regex/new/71
ok 35 /regex/new/80
ok 36 /regex/new/82
# End of new tests
# Start of new-check-flags tests
ok 37 /regex/new-check-flags/20
ok 38 /regex/new-check-flags/21
ok 39 /regex/new-check-flags/22
ok 40 /regex/new-check-flags/23
ok 41 /regex/new-check-flags/24
ok 42 /regex/new-check-flags/25
ok 43 /regex/new-check-flags/26
ok 44 /regex/new-check-flags/27
ok 45 /regex/new-check-flags/28
ok 46 /regex/new-check-flags/29
ok 47 /regex/new-check-flags/30
ok 48 /regex/new-check-flags/31
ok 49 /regex/new-check-flags/32
ok 50 /regex/new-check-flags/33
ok 51 /regex/new-check-flags/34
ok 52 /regex/new-check-flags/35
ok 53 /regex/new-check-flags/36
# End of new-check-flags tests
# Start of new-fail tests
ok 54 /regex/new-fail/37
ok 55 /regex/new-fail/38
ok 56 /regex/new-fail/39
ok 57 /regex/new-fail/40
ok 58 /regex/new-fail/41
ok 59 /regex/new-fail/42
ok 60 /regex/new-fail/43
ok 61 /regex/new-fail/44
ok 62 /regex/new-fail/45
ok 63 /regex/new-fail/46
ok 64 /regex/new-fail/47
ok 65 /regex/new-fail/48
ok 66 /regex/new-fail/49
ok 67 /regex/new-fail/50
ok 68 /regex/new-fail/51
ok 69 /regex/new-fail/52
ok 70 /regex/new-fail/53
ok 71 /regex/new-fail/54
ok 72 /regex/new-fail/55
ok 73 /regex/new-fail/56
ok 74 /regex/new-fail/57
ok 75 /regex/new-fail/58
ok 76 /regex/new-fail/59
ok 77 /regex/new-fail/60
ok 78 /regex/new-fail/61
ok 79 /regex/new-fail/62
ok 80 /regex/new-fail/63
ok 81 /regex/new-fail/64
ok 82 /regex/new-fail/65
ok 83 /regex/new-fail/66
ok 84 /regex/new-fail/67
ok 85 /regex/new-fail/68
ok 86 /regex/new-fail/69
ok 87 /regex/new-fail/70
ok 88 /regex/new-fail/72
ok 89 /regex/new-fail/73
ok 90 /regex/new-fail/74
ok 91 /regex/new-fail/75
ok 92 /regex/new-fail/76
ok 93 /regex/new-fail/77
ok 94 /regex/new-fail/78
ok 95 /regex/new-fail/79
ok 96 /regex/new-fail/81
ok 97 /regex/new-fail/83
ok 98 /regex/new-fail/84
ok 99 /regex/new-fail/85
ok 100 /regex/new-fail/86
ok 101 /regex/new-fail/87
ok 102 /regex/new-fail/88
ok 103 /regex/new-fail/89
ok 104 /regex/new-fail/90
ok 105 /regex/new-fail/91
# End of new-fail tests
# Start of match-simple tests
ok 106 /regex/match-simple/92
ok 107 /regex/match-simple/93
ok 108 /regex/match-simple/94
ok 109 /regex/match-simple/95
ok 110 /regex/match-simple/96
ok 111 /regex/match-simple/97
ok 112 /regex/match-simple/98
ok 113 /regex/match-simple/99
ok 114 /regex/match-simple/100
ok 115 /regex/match-simple/101
ok 116 /regex/match-simple/102
ok 117 /regex/match-simple/103
ok 118 /regex/match-simple/104
ok 119 /regex/match-simple/105
ok 120 /regex/match-simple/106
ok 121 /regex/match-simple/107
ok 122 /regex/match-simple/108
ok 123 /regex/match-simple/109
ok 124 /regex/match-simple/110
ok 125 /regex/match-simple/111
ok 126 /regex/match-simple/112
ok 127 /regex/match-simple/113
ok 128 /regex/match-simple/114
ok 129 /regex/match-simple/115
ok 130 /regex/match-simple/116
ok 131 /regex/match-simple/117
ok 132 /regex/match-simple/118
ok 133 /regex/match-simple/119
ok 134 /regex/match-simple/120
ok 135 /regex/match-simple/121
ok 136 /regex/match-simple/122
ok 137 /regex/match-simple/123
ok 138 /regex/match-simple/124
ok 139 /regex/match-simple/125
ok 140 /regex/match-simple/126
ok 141 /regex/match-simple/127
ok 142 /regex/match-simple/128
ok 143 /regex/match-simple/129
ok 144 /regex/match-simple/130
ok 145 /regex/match-simple/131
ok 146 /regex/match-simple/132
ok 147 /regex/match-simple/133
ok 148 /regex/match-simple/134
ok 149 /regex/match-simple/135
ok 150 /regex/match-simple/136
ok 151 /regex/match-simple/137
ok 152 /regex/match-simple/138
ok 153 /regex/match-simple/139
ok 154 /regex/match-simple/140
ok 155 /regex/match-simple/141
ok 156 /regex/match-simple/142
ok 157 /regex/match-simple/143
ok 158 /regex/match-simple/144
ok 159 /regex/match-simple/145
ok 160 /regex/match-simple/146
ok 161 /regex/match-simple/147
ok 162 /regex/match-simple/148
ok 163 /regex/match-simple/149
ok 164 /regex/match-simple/150
ok 165 /regex/match-simple/151
ok 166 /regex/match-simple/152
ok 167 /regex/match-simple/153
ok 168 /regex/match-simple/154
ok 169 /regex/match-simple/155
ok 170 /regex/match-simple/156
ok 171 /regex/match-simple/157
ok 172 /regex/match-simple/158
ok 173 /regex/match-simple/159
ok 174 /regex/match-simple/160
ok 175 /regex/match-simple/161
ok 176 /regex/match-simple/162
ok 177 /regex/match-simple/163
ok 178 /regex/match-simple/164
# End of match-simple tests
# Start of match-simple-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 179 /regex/match-simple-optimized/92
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 180 /regex/match-simple-optimized/93
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 181 /regex/match-simple-optimized/94
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 182 /regex/match-simple-optimized/95
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 183 /regex/match-simple-optimized/96
ok 184 /regex/match-simple-optimized/97
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 185 /regex/match-simple-optimized/98
ok 186 /regex/match-simple-optimized/99
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 187 /regex/match-simple-optimized/100
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 188 /regex/match-simple-optimized/101
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 189 /regex/match-simple-optimized/102
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 190 /regex/match-simple-optimized/103
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 191 /regex/match-simple-optimized/104
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 192 /regex/match-simple-optimized/105
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 193 /regex/match-simple-optimized/106
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 194 /regex/match-simple-optimized/107
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 195 /regex/match-simple-optimized/108
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 196 /regex/match-simple-optimized/109
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 197 /regex/match-simple-optimized/110
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 198 /regex/match-simple-optimized/111
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 199 /regex/match-simple-optimized/112
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 200 /regex/match-simple-optimized/113
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 201 /regex/match-simple-optimized/114
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 202 /regex/match-simple-optimized/115
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 203 /regex/match-simple-optimized/116
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 204 /regex/match-simple-optimized/117
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 205 /regex/match-simple-optimized/118
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 206 /regex/match-simple-optimized/119
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 207 /regex/match-simple-optimized/120
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 208 /regex/match-simple-optimized/121
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 209 /regex/match-simple-optimized/122
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 210 /regex/match-simple-optimized/123
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 211 /regex/match-simple-optimized/124
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 212 /regex/match-simple-optimized/125
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 213 /regex/match-simple-optimized/126
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 214 /regex/match-simple-optimized/127
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 215 /regex/match-simple-optimized/128
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 216 /regex/match-simple-optimized/129
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 217 /regex/match-simple-optimized/130
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 218 /regex/match-simple-optimized/131
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 219 /regex/match-simple-optimized/132
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 220 /regex/match-simple-optimized/133
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 221 /regex/match-simple-optimized/134
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 222 /regex/match-simple-optimized/135
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 223 /regex/match-simple-optimized/136
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 224 /regex/match-simple-optimized/137
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 225 /regex/match-simple-optimized/138
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 226 /regex/match-simple-optimized/139
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 227 /regex/match-simple-optimized/140
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 228 /regex/match-simple-optimized/141
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 229 /regex/match-simple-optimized/142
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 230 /regex/match-simple-optimized/143
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 231 /regex/match-simple-optimized/144
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 232 /regex/match-simple-optimized/145
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 233 /regex/match-simple-optimized/146
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 234 /regex/match-simple-optimized/147
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 235 /regex/match-simple-optimized/148
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 236 /regex/match-simple-optimized/149
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 237 /regex/match-simple-optimized/150
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 238 /regex/match-simple-optimized/151
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 239 /regex/match-simple-optimized/152
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 240 /regex/match-simple-optimized/153
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 241 /regex/match-simple-optimized/154
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 242 /regex/match-simple-optimized/155
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 243 /regex/match-simple-optimized/156
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 244 /regex/match-simple-optimized/157
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 245 /regex/match-simple-optimized/158
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 246 /regex/match-simple-optimized/159
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 247 /regex/match-simple-optimized/160
ok 248 /regex/match-simple-optimized/161
ok 249 /regex/match-simple-optimized/162
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 250 /regex/match-simple-optimized/163
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 251 /regex/match-simple-optimized/164
# End of match-simple-optimized tests
# Start of match tests
ok 252 /regex/match/165
ok 253 /regex/match/166
ok 254 /regex/match/167
ok 255 /regex/match/168
ok 256 /regex/match/169
ok 257 /regex/match/170
ok 258 /regex/match/171
ok 259 /regex/match/172
ok 260 /regex/match/173
ok 261 /regex/match/174
ok 262 /regex/match/175
ok 263 /regex/match/176
ok 264 /regex/match/177
ok 265 /regex/match/178
ok 266 /regex/match/179
ok 267 /regex/match/180
ok 268 /regex/match/181
ok 269 /regex/match/182
ok 270 /regex/match/183
ok 271 /regex/match/184
ok 272 /regex/match/185
ok 273 /regex/match/186
ok 274 /regex/match/187
ok 275 /regex/match/188
ok 276 /regex/match/189
ok 277 /regex/match/190
ok 278 /regex/match/191
ok 279 /regex/match/192
ok 280 /regex/match/193
ok 281 /regex/match/194
ok 282 /regex/match/195
ok 283 /regex/match/196
ok 284 /regex/match/197
ok 285 /regex/match/198
ok 286 /regex/match/199
ok 287 /regex/match/200
ok 288 /regex/match/201
ok 289 /regex/match/202
ok 290 /regex/match/203
ok 291 /regex/match/204
ok 292 /regex/match/205
ok 293 /regex/match/206
ok 294 /regex/match/207
ok 295 /regex/match/208
ok 296 /regex/match/209
ok 297 /regex/match/210
ok 298 /regex/match/211
ok 299 /regex/match/212
ok 300 /regex/match/213
ok 301 /regex/match/214
ok 302 /regex/match/215
ok 303 /regex/match/216
ok 304 /regex/match/217
ok 305 /regex/match/218
ok 306 /regex/match/219
ok 307 /regex/match/220
ok 308 /regex/match/221
ok 309 /regex/match/222
ok 310 /regex/match/223
ok 311 /regex/match/224
ok 312 /regex/match/225
ok 313 /regex/match/226
ok 314 /regex/match/227
ok 315 /regex/match/228
ok 316 /regex/match/229
ok 317 /regex/match/230
ok 318 /regex/match/231
ok 319 /regex/match/232
ok 320 /regex/match/233
ok 321 /regex/match/234
ok 322 /regex/match/235
ok 323 /regex/match/236
ok 324 /regex/match/237
ok 325 /regex/match/238
ok 326 /regex/match/239
ok 327 /regex/match/240
ok 328 /regex/match/241
ok 329 /regex/match/242
ok 330 /regex/match/243
ok 331 /regex/match/244
ok 332 /regex/match/245
ok 333 /regex/match/246
ok 334 /regex/match/partial281
ok 335 /regex/match/partial282
ok 336 /regex/match/partial283
ok 337 /regex/match/partial284
ok 338 /regex/match/partial285
ok 339 /regex/match/partial286
ok 340 /regex/match/partial287
ok 341 /regex/match/partial288
ok 342 /regex/match/partial289
ok 343 /regex/match/partial290
ok 344 /regex/match/partial291
ok 345 /regex/match/partial292
ok 346 /regex/match/partial293
ok 347 /regex/match/partial294
ok 348 /regex/match/partial295
ok 349 /regex/match/partial296
ok 350 /regex/match/partial297
ok 351 /regex/match/partial298
ok 352 /regex/match/partial299
ok 353 /regex/match/partial300
ok 354 /regex/match/partial301
ok 355 /regex/match/partial302
# Start of next0 tests
ok 356 /regex/match/next0/247
ok 357 /regex/match/next0/248
ok 358 /regex/match/next0/249
ok 359 /regex/match/next0/250
# End of next0 tests
# Start of next1 tests
ok 360 /regex/match/next1/251
ok 361 /regex/match/next1/252
ok 362 /regex/match/next1/253
ok 363 /regex/match/next1/254
ok 364 /regex/match/next1/255
# End of next1 tests
# Start of next2 tests
ok 365 /regex/match/next2/256
ok 366 /regex/match/next2/257
ok 367 /regex/match/next2/258
ok 368 /regex/match/next2/259
ok 369 /regex/match/next2/260
ok 370 /regex/match/next2/261
ok 371 /regex/match/next2/262
ok 372 /regex/match/next2/263
# End of next2 tests
# Start of next3 tests
ok 373 /regex/match/next3/264
ok 374 /regex/match/next3/265
ok 375 /regex/match/next3/266
ok 376 /regex/match/next3/267
ok 377 /regex/match/next3/268
ok 378 /regex/match/next3/269
# End of next3 tests
# Start of next4 tests
ok 379 /regex/match/next4/270
# End of next4 tests
# Start of count tests
ok 380 /regex/match/count/271
ok 381 /regex/match/count/272
ok 382 /regex/match/count/273
ok 383 /regex/match/count/274
ok 384 /regex/match/count/275
ok 385 /regex/match/count/276
ok 386 /regex/match/count/277
ok 387 /regex/match/count/278
ok 388 /regex/match/count/279
ok 389 /regex/match/count/280
# End of count tests
# Start of count-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 390 /regex/match/count-optimized/271
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 391 /regex/match/count-optimized/272
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 392 /regex/match/count-optimized/273
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 393 /regex/match/count-optimized/274
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 394 /regex/match/count-optimized/275
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 395 /regex/match/count-optimized/276
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 396 /regex/match/count-optimized/277
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 397 /regex/match/count-optimized/278
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 398 /regex/match/count-optimized/279
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 399 /regex/match/count-optimized/280
# End of count-optimized tests
# Start of partial-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 400 /regex/match/partial-optimized/281
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 401 /regex/match/partial-optimized/282
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 402 /regex/match/partial-optimized/283
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 403 /regex/match/partial-optimized/284
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 404 /regex/match/partial-optimized/285
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 405 /regex/match/partial-optimized/286
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 406 /regex/match/partial-optimized/287
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 407 /regex/match/partial-optimized/288
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 408 /regex/match/partial-optimized/289
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 409 /regex/match/partial-optimized/290
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 410 /regex/match/partial-optimized/291
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 411 /regex/match/partial-optimized/292
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 412 /regex/match/partial-optimized/293
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 413 /regex/match/partial-optimized/294
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 414 /regex/match/partial-optimized/295
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 415 /regex/match/partial-optimized/296
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 416 /regex/match/partial-optimized/297
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 417 /regex/match/partial-optimized/298
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 418 /regex/match/partial-optimized/299
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 419 /regex/match/partial-optimized/300
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 420 /regex/match/partial-optimized/301
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 421 /regex/match/partial-optimized/302
# End of partial-optimized tests
# Start of subpattern tests
ok 422 /regex/match/subpattern/303
ok 423 /regex/match/subpattern/304
ok 424 /regex/match/subpattern/305
ok 425 /regex/match/subpattern/306
ok 426 /regex/match/subpattern/307
ok 427 /regex/match/subpattern/308
ok 428 /regex/match/subpattern/309
ok 429 /regex/match/subpattern/310
ok 430 /regex/match/subpattern/311
ok 431 /regex/match/subpattern/312
ok 432 /regex/match/subpattern/313
ok 433 /regex/match/subpattern/314
ok 434 /regex/match/subpattern/315
# Start of named tests
# Start of dupnames tests
ok 435 /regex/match/subpattern/named/dupnames/325
ok 436 /regex/match/subpattern/named/dupnames/326
ok 437 /regex/match/subpattern/named/dupnames/327
ok 438 /regex/match/subpattern/named/dupnames/328
ok 439 /regex/match/subpattern/named/dupnames/329
# End of dupnames tests
# End of named tests
# End of subpattern tests
# Start of subpattern-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 440 /regex/match/subpattern-optimized/303
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 441 /regex/match/subpattern-optimized/304
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 442 /regex/match/subpattern-optimized/305
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 443 /regex/match/subpattern-optimized/306
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 444 /regex/match/subpattern-optimized/307
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 445 /regex/match/subpattern-optimized/308
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 446 /regex/match/subpattern-optimized/309
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 447 /regex/match/subpattern-optimized/310
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 448 /regex/match/subpattern-optimized/311
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 449 /regex/match/subpattern-optimized/312
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 450 /regex/match/subpattern-optimized/313
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 451 /regex/match/subpattern-optimized/314
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 452 /regex/match/subpattern-optimized/315
# End of subpattern-optimized tests
# Start of named tests
# Start of subpattern tests
ok 453 /regex/match/named/subpattern/316
ok 454 /regex/match/named/subpattern/317
ok 455 /regex/match/named/subpattern/318
ok 456 /regex/match/named/subpattern/319
ok 457 /regex/match/named/subpattern/320
ok 458 /regex/match/named/subpattern/321
ok 459 /regex/match/named/subpattern/322
ok 460 /regex/match/named/subpattern/323
ok 461 /regex/match/named/subpattern/324
ok 462 /regex/match/named/subpattern/330
ok 463 /regex/match/named/subpattern/331
ok 464 /regex/match/named/subpattern/332
ok 465 /regex/match/named/subpattern/333
ok 466 /regex/match/named/subpattern/334
# End of subpattern tests
# End of named tests
# End of match tests
# Start of match-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 467 /regex/match-optimized/165
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 468 /regex/match-optimized/166
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 469 /regex/match-optimized/167
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 470 /regex/match-optimized/168
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 471 /regex/match-optimized/169
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 472 /regex/match-optimized/170
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 473 /regex/match-optimized/171
ok 474 /regex/match-optimized/172
ok 475 /regex/match-optimized/173
ok 476 /regex/match-optimized/174
ok 477 /regex/match-optimized/175
ok 478 /regex/match-optimized/176
ok 479 /regex/match-optimized/177
ok 480 /regex/match-optimized/178
ok 481 /regex/match-optimized/179
ok 482 /regex/match-optimized/180
ok 483 /regex/match-optimized/181
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 484 /regex/match-optimized/182
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 485 /regex/match-optimized/183
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 486 /regex/match-optimized/184
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 487 /regex/match-optimized/185
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 488 /regex/match-optimized/186
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 489 /regex/match-optimized/187
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 490 /regex/match-optimized/188
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 491 /regex/match-optimized/189
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 492 /regex/match-optimized/190
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 493 /regex/match-optimized/191
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 494 /regex/match-optimized/192
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 495 /regex/match-optimized/193
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 496 /regex/match-optimized/194
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 497 /regex/match-optimized/195
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 498 /regex/match-optimized/196
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 499 /regex/match-optimized/197
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 500 /regex/match-optimized/198
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 501 /regex/match-optimized/199
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 502 /regex/match-optimized/200
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 503 /regex/match-optimized/201
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 504 /regex/match-optimized/202
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 505 /regex/match-optimized/203
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 506 /regex/match-optimized/204
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 507 /regex/match-optimized/205
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 508 /regex/match-optimized/206
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 509 /regex/match-optimized/207
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 510 /regex/match-optimized/208
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 511 /regex/match-optimized/209
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 512 /regex/match-optimized/210
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 513 /regex/match-optimized/211
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 514 /regex/match-optimized/212
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 515 /regex/match-optimized/213
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 516 /regex/match-optimized/214
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 517 /regex/match-optimized/215
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 518 /regex/match-optimized/216
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 519 /regex/match-optimized/217
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 520 /regex/match-optimized/218
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 521 /regex/match-optimized/219
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 522 /regex/match-optimized/220
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 523 /regex/match-optimized/221
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 524 /regex/match-optimized/222
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 525 /regex/match-optimized/223
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 526 /regex/match-optimized/224
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 527 /regex/match-optimized/225
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 528 /regex/match-optimized/226
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 529 /regex/match-optimized/227
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 530 /regex/match-optimized/228
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 531 /regex/match-optimized/229
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 532 /regex/match-optimized/230
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 533 /regex/match-optimized/231
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 534 /regex/match-optimized/232
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 535 /regex/match-optimized/233
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 536 /regex/match-optimized/234
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 537 /regex/match-optimized/235
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 538 /regex/match-optimized/236
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 539 /regex/match-optimized/237
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 540 /regex/match-optimized/238
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 541 /regex/match-optimized/239
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 542 /regex/match-optimized/240
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 543 /regex/match-optimized/241
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 544 /regex/match-optimized/242
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 545 /regex/match-optimized/243
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 546 /regex/match-optimized/244
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 547 /regex/match-optimized/245
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 548 /regex/match-optimized/246
# End of match-optimized tests
# Start of fetch-all0 tests
ok 549 /regex/fetch-all0/335
ok 550 /regex/fetch-all0/336
# End of fetch-all0 tests
# Start of fetch-all1 tests
ok 551 /regex/fetch-all1/337
ok 552 /regex/fetch-all1/338
ok 553 /regex/fetch-all1/339
# End of fetch-all1 tests
# Start of fetch-all2 tests
ok 554 /regex/fetch-all2/340
ok 555 /regex/fetch-all2/341
ok 556 /regex/fetch-all2/342
# End of fetch-all2 tests
# Start of fetch-all3 tests
ok 557 /regex/fetch-all3/343
ok 558 /regex/fetch-all3/344
ok 559 /regex/fetch-all3/345
ok 560 /regex/fetch-all3/346
ok 561 /regex/fetch-all3/347
# End of fetch-all3 tests
# Start of split tests
# Start of simple0 tests
ok 562 /regex/split/simple0/348
ok 563 /regex/split/simple0/349
ok 564 /regex/split/simple0/364
ok 565 /regex/split/simple0/365
# End of simple0 tests
# Start of simple1 tests
ok 566 /regex/split/simple1/350
ok 567 /regex/split/simple1/351
# End of simple1 tests
# Start of simple2 tests
ok 568 /regex/split/simple2/352
ok 569 /regex/split/simple2/358
ok 570 /regex/split/simple2/360
# End of simple2 tests
# Start of simple3 tests
ok 571 /regex/split/simple3/353
ok 572 /regex/split/simple3/354
ok 573 /regex/split/simple3/355
ok 574 /regex/split/simple3/356
ok 575 /regex/split/simple3/357
ok 576 /regex/split/simple3/359
ok 577 /regex/split/simple3/361
ok 578 /regex/split/simple3/362
ok 579 /regex/split/simple3/363
# End of simple3 tests
# End of split tests
# Start of split0 tests
ok 580 /regex/split0/366
ok 581 /regex/split0/368
# End of split0 tests
# Start of full-split0 tests
ok 582 /regex/full-split0/367
ok 583 /regex/full-split0/369
ok 584 /regex/full-split0/370
ok 585 /regex/full-split0/371
ok 586 /regex/full-split0/372
# End of full-split0 tests
# Start of split1 tests
ok 587 /regex/split1/373
ok 588 /regex/split1/376
# End of split1 tests
# Start of full-split1 tests
ok 589 /regex/full-split1/374
ok 590 /regex/full-split1/375
ok 591 /regex/full-split1/377
ok 592 /regex/full-split1/378
ok 593 /regex/full-split1/404
# End of full-split1 tests
# Start of split2 tests
ok 594 /regex/split2/379
ok 595 /regex/split2/383
ok 596 /regex/split2/395
# End of split2 tests
# Start of full-split2 tests
ok 597 /regex/full-split2/380
ok 598 /regex/full-split2/381
ok 599 /regex/full-split2/382
ok 600 /regex/full-split2/384
ok 601 /regex/full-split2/396
ok 602 /regex/full-split2/399
ok 603 /regex/full-split2/405
# End of full-split2 tests
# Start of split3 tests
ok 604 /regex/split3/385
ok 605 /regex/split3/387
ok 606 /regex/split3/389
ok 607 /regex/split3/391
ok 608 /regex/split3/393
ok 609 /regex/split3/397
ok 610 /regex/split3/400
ok 611 /regex/split3/402
# End of split3 tests
# Start of full-split3 tests
ok 612 /regex/full-split3/386
ok 613 /regex/full-split3/388
ok 614 /regex/full-split3/390
ok 615 /regex/full-split3/392
ok 616 /regex/full-split3/394
ok 617 /regex/full-split3/398
ok 618 /regex/full-split3/401
ok 619 /regex/full-split3/403
ok 620 /regex/full-split3/406
ok 621 /regex/full-split3/407
# End of full-split3 tests
# Start of check-repacement tests
ok 622 /regex/check-repacement/408
ok 623 /regex/check-repacement/409
ok 624 /regex/check-repacement/410
ok 625 /regex/check-repacement/411
ok 626 /regex/check-repacement/412
ok 627 /regex/check-repacement/413
ok 628 /regex/check-repacement/414
ok 629 /regex/check-repacement/415
# End of check-repacement tests
# Start of expand tests
ok 630 /regex/expand/416
ok 631 /regex/expand/417
ok 632 /regex/expand/418
ok 633 /regex/expand/419
ok 634 /regex/expand/420
ok 635 /regex/expand/421
ok 636 /regex/expand/422
ok 637 /regex/expand/423
ok 638 /regex/expand/424
ok 639 /regex/expand/425
ok 640 /regex/expand/426
ok 641 /regex/expand/427
ok 642 /regex/expand/428
ok 643 /regex/expand/429
ok 644 /regex/expand/430
ok 645 /regex/expand/431
ok 646 /regex/expand/432
ok 647 /regex/expand/433
ok 648 /regex/expand/434
ok 649 /regex/expand/435
ok 650 /regex/expand/436
ok 651 /regex/expand/437
ok 652 /regex/expand/438
ok 653 /regex/expand/439
ok 654 /regex/expand/440
ok 655 /regex/expand/441
ok 656 /regex/expand/442
ok 657 /regex/expand/443
ok 658 /regex/expand/444
ok 659 /regex/expand/445
ok 660 /regex/expand/446
ok 661 /regex/expand/447
ok 662 /regex/expand/448
ok 663 /regex/expand/449
ok 664 /regex/expand/450
ok 665 /regex/expand/451
ok 666 /regex/expand/452
ok 667 /regex/expand/453
ok 668 /regex/expand/454
ok 669 /regex/expand/455
ok 670 /regex/expand/456
ok 671 /regex/expand/457
ok 672 /regex/expand/458
ok 673 /regex/expand/459
ok 674 /regex/expand/460
ok 675 /regex/expand/461
ok 676 /regex/expand/462
ok 677 /regex/expand/463
ok 678 /regex/expand/464
ok 679 /regex/expand/465
ok 680 /regex/expand/466
ok 681 /regex/expand/467
ok 682 /regex/expand/468
ok 683 /regex/expand/469
ok 684 /regex/expand/470
ok 685 /regex/expand/471
ok 686 /regex/expand/472
ok 687 /regex/expand/473
ok 688 /regex/expand/474
ok 689 /regex/expand/475
ok 690 /regex/expand/476
ok 691 /regex/expand/477
ok 692 /regex/expand/478
ok 693 /regex/expand/479
ok 694 /regex/expand/480
ok 695 /regex/expand/481
# End of expand tests
# Start of replace tests
ok 696 /regex/replace/482
ok 697 /regex/replace/483
ok 698 /regex/replace/484
ok 699 /regex/replace/485
ok 700 /regex/replace/486
ok 701 /regex/replace/487
ok 702 /regex/replace/488
ok 703 /regex/replace/489
ok 704 /regex/replace/490
ok 705 /regex/replace/491
ok 706 /regex/replace/492
ok 707 /regex/replace/493
ok 708 /regex/replace/494
ok 709 /regex/replace/495
ok 710 /regex/replace/496
ok 711 /regex/replace/497
ok 712 /regex/replace/498
ok 713 /regex/replace/499
ok 714 /regex/replace/500
ok 715 /regex/replace/501
ok 716 /regex/replace/502
ok 717 /regex/replace/503
ok 718 /regex/replace/504
ok 719 /regex/replace/505
ok 720 /regex/replace/506
ok 721 /regex/replace/507
ok 722 /regex/replace/508
ok 723 /regex/replace/509
# End of replace tests
# Start of replace-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 724 /regex/replace-optimized/482
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 725 /regex/replace-optimized/483
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 726 /regex/replace-optimized/484
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 727 /regex/replace-optimized/485
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 728 /regex/replace-optimized/486
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 729 /regex/replace-optimized/487
ok 730 /regex/replace-optimized/488
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 731 /regex/replace-optimized/489
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 732 /regex/replace-optimized/490
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 733 /regex/replace-optimized/491
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 734 /regex/replace-optimized/492
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 735 /regex/replace-optimized/493
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 736 /regex/replace-optimized/494
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 737 /regex/replace-optimized/495
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 738 /regex/replace-optimized/496
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 739 /regex/replace-optimized/497
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 740 /regex/replace-optimized/498
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 741 /regex/replace-optimized/499
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 742 /regex/replace-optimized/500
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 743 /regex/replace-optimized/501
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 744 /regex/replace-optimized/502
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 745 /regex/replace-optimized/503
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 746 /regex/replace-optimized/504
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 747 /regex/replace-optimized/505
ok 748 /regex/replace-optimized/506
ok 749 /regex/replace-optimized/507
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 750 /regex/replace-optimized/508
ok 751 /regex/replace-optimized/509
# End of replace-optimized tests
# Start of replace-literally tests
ok 752 /regex/replace-literally/510
ok 753 /regex/replace-literally/511
ok 754 /regex/replace-literally/512
ok 755 /regex/replace-literally/513
ok 756 /regex/replace-literally/514
ok 757 /regex/replace-literally/515
ok 758 /regex/replace-literally/516
ok 759 /regex/replace-literally/517
ok 760 /regex/replace-literally/518
ok 761 /regex/replace-literally/519
ok 762 /regex/replace-literally/520
ok 763 /regex/replace-literally/521
ok 764 /regex/replace-literally/522
ok 765 /regex/replace-literally/523
ok 766 /regex/replace-literally/524
ok 767 /regex/replace-literally/525
ok 768 /regex/replace-literally/526
ok 769 /regex/replace-literally/527
ok 770 /regex/replace-literally/528
ok 771 /regex/replace-literally/529
# End of replace-literally tests
# Start of string-number tests
ok 772 /regex/string-number/530
ok 773 /regex/string-number/531
ok 774 /regex/string-number/532
ok 775 /regex/string-number/533
ok 776 /regex/string-number/534
ok 777 /regex/string-number/535
ok 778 /regex/string-number/536
ok 779 /regex/string-number/537
ok 780 /regex/string-number/538
ok 781 /regex/string-number/539
ok 782 /regex/string-number/540
ok 783 /regex/string-number/541
ok 784 /regex/string-number/542
ok 785 /regex/string-number/543
ok 786 /regex/string-number/544
# End of string-number tests
# Start of escape_nul tests
ok 787 /regex/escape_nul/545
ok 788 /regex/escape_nul/546
ok 789 /regex/escape_nul/547
ok 790 /regex/escape_nul/548
ok 791 /regex/escape_nul/549
ok 792 /regex/escape_nul/550
ok 793 /regex/escape_nul/551
ok 794 /regex/escape_nul/552
ok 795 /regex/escape_nul/553
ok 796 /regex/escape_nul/554
ok 797 /regex/escape_nul/555
ok 798 /regex/escape_nul/556
ok 799 /regex/escape_nul/557
ok 800 /regex/escape_nul/558
ok 801 /regex/escape_nul/559
# End of escape_nul tests
# Start of escape tests
ok 802 /regex/escape/560
ok 803 /regex/escape/561
ok 804 /regex/escape/562
ok 805 /regex/escape/563
ok 806 /regex/escape/564
ok 807 /regex/escape/565
ok 808 /regex/escape/566
ok 809 /regex/escape/567
ok 810 /regex/escape/568
ok 811 /regex/escape/569
ok 812 /regex/escape/570
ok 813 /regex/escape/571
ok 814 /regex/escape/572
ok 815 /regex/escape/573
ok 816 /regex/escape/574
ok 817 /regex/escape/575
ok 818 /regex/escape/576
ok 819 /regex/escape/577
# End of escape tests
# Start of match-all0 tests
ok 820 /regex/match-all0/578
ok 821 /regex/match-all0/580
# End of match-all0 tests
# Start of match-all-full0 tests
ok 822 /regex/match-all-full0/579
ok 823 /regex/match-all-full0/581
ok 824 /regex/match-all-full0/582
ok 825 /regex/match-all-full0/583
# End of match-all-full0 tests
# Start of match-all1 tests
ok 826 /regex/match-all1/584
ok 827 /regex/match-all1/586
ok 828 /regex/match-all1/591
# End of match-all1 tests
# Start of match-all-full1 tests
ok 829 /regex/match-all-full1/585
ok 830 /regex/match-all-full1/587
ok 831 /regex/match-all-full1/588
ok 832 /regex/match-all-full1/589
ok 833 /regex/match-all-full1/590
ok 834 /regex/match-all-full1/592
# End of match-all-full1 tests
# Start of match-all2 tests
ok 835 /regex/match-all2/593
ok 836 /regex/match-all2/595
ok 837 /regex/match-all2/597
# End of match-all2 tests
# Start of match-all-full2 tests
ok 838 /regex/match-all-full2/594
ok 839 /regex/match-all-full2/596
ok 840 /regex/match-all-full2/598
# End of match-all-full2 tests
# Start of match-all3 tests
ok 841 /regex/match-all3/599
ok 842 /regex/match-all3/601
# End of match-all3 tests
# Start of match-all-full3 tests
ok 843 /regex/match-all-full3/600
ok 844 /regex/match-all-full3/602
# End of match-all-full3 tests
# Start of match-notempty tests
ok 845 /regex/match-notempty/603
# End of match-notempty tests
# Start of match-notempty-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 846 /regex/match-notempty-optimized/603
# End of match-notempty-optimized tests
# Start of match-notempty-atstart tests
ok 847 /regex/match-notempty-atstart/604
# End of match-notempty-atstart tests
# Start of match-notempty-atstart-optimized tests
# GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code.
ok 848 /regex/match-notempty-atstart-optimized/604
# End of match-notempty-atstart-optimized tests
# End of regex tests
PASS: glib/regex.test
Running test: glib/autoptr-girepository.test
TAP version 14
# random seed: R02S5231115ccfcf84ab6515ab049e601ba2
1..24
# Start of autoptr tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/repository/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/repository/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/repository/.dirs/system-config1:/var/volatile/tmp/autoptr/repository/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/repository/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/repository/.dirs/system-data1:/var/volatile/tmp/autoptr/repository/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/repository/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/repository/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/repository/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 1 /autoptr/repository
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/typelib/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/typelib/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/typelib/.dirs/system-config1:/var/volatile/tmp/autoptr/typelib/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/typelib/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/typelib/.dirs/system-data1:/var/volatile/tmp/autoptr/typelib/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/typelib/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/typelib/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/typelib/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 2 /autoptr/typelib
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/base-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/base-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/base-info/.dirs/system-config1:/var/volatile/tmp/autoptr/base-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/base-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/base-info/.dirs/system-data1:/var/volatile/tmp/autoptr/base-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/base-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/base-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/base-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 3 /autoptr/base-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/arg-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/arg-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/arg-info/.dirs/system-config1:/var/volatile/tmp/autoptr/arg-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/arg-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/arg-info/.dirs/system-data1:/var/volatile/tmp/autoptr/arg-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/arg-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/arg-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/arg-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 4 /autoptr/arg-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/callable-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/callable-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/callable-info/.dirs/system-config1:/var/volatile/tmp/autoptr/callable-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/callable-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/callable-info/.dirs/system-data1:/var/volatile/tmp/autoptr/callable-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/callable-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/callable-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/callable-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 5 /autoptr/callable-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/callback-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/callback-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/callback-info/.dirs/system-config1:/var/volatile/tmp/autoptr/callback-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/callback-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/callback-info/.dirs/system-data1:/var/volatile/tmp/autoptr/callback-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/callback-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/callback-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/callback-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 6 /autoptr/callback-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/constant-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/constant-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/constant-info/.dirs/system-config1:/var/volatile/tmp/autoptr/constant-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/constant-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/constant-info/.dirs/system-data1:/var/volatile/tmp/autoptr/constant-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/constant-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/constant-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/constant-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 7 /autoptr/constant-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/enum-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/enum-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/enum-info/.dirs/system-config1:/var/volatile/tmp/autoptr/enum-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/enum-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/enum-info/.dirs/system-data1:/var/volatile/tmp/autoptr/enum-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/enum-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/enum-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/enum-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 8 /autoptr/enum-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/field-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/field-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/field-info/.dirs/system-config1:/var/volatile/tmp/autoptr/field-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/field-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/field-info/.dirs/system-data1:/var/volatile/tmp/autoptr/field-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/field-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/field-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/field-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 9 /autoptr/field-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/flags-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/flags-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/flags-info/.dirs/system-config1:/var/volatile/tmp/autoptr/flags-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/flags-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/flags-info/.dirs/system-data1:/var/volatile/tmp/autoptr/flags-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/flags-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/flags-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/flags-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 10 /autoptr/flags-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/function-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/function-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/function-info/.dirs/system-config1:/var/volatile/tmp/autoptr/function-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/function-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/function-info/.dirs/system-data1:/var/volatile/tmp/autoptr/function-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/function-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/function-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/function-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 11 /autoptr/function-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/interface-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/interface-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/interface-info/.dirs/system-config1:/var/volatile/tmp/autoptr/interface-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/interface-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/interface-info/.dirs/system-data1:/var/volatile/tmp/autoptr/interface-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/interface-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/interface-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/interface-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 12 /autoptr/interface-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/object-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/object-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/object-info/.dirs/system-config1:/var/volatile/tmp/autoptr/object-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/object-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/object-info/.dirs/system-data1:/var/volatile/tmp/autoptr/object-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/object-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/object-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/object-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 13 /autoptr/object-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/property-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/property-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/property-info/.dirs/system-config1:/var/volatile/tmp/autoptr/property-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/property-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/property-info/.dirs/system-data1:/var/volatile/tmp/autoptr/property-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/property-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/property-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/property-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 14 /autoptr/property-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/registered-type-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/registered-type-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/registered-type-info/.dirs/system-config1:/var/volatile/tmp/autoptr/registered-type-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/registered-type-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/registered-type-info/.dirs/system-data1:/var/volatile/tmp/autoptr/registered-type-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/registered-type-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/registered-type-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/registered-type-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 15 /autoptr/registered-type-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/signal-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/signal-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/signal-info/.dirs/system-config1:/var/volatile/tmp/autoptr/signal-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/signal-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/signal-info/.dirs/system-data1:/var/volatile/tmp/autoptr/signal-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/signal-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/signal-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/signal-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 16 /autoptr/signal-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/struct-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/struct-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/struct-info/.dirs/system-config1:/var/volatile/tmp/autoptr/struct-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/struct-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/struct-info/.dirs/system-data1:/var/volatile/tmp/autoptr/struct-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/struct-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/struct-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/struct-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 17 /autoptr/struct-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/type-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/type-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/type-info/.dirs/system-config1:/var/volatile/tmp/autoptr/type-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/type-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/type-info/.dirs/system-data1:/var/volatile/tmp/autoptr/type-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/type-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/type-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/type-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 18 /autoptr/type-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/union-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/union-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/union-info/.dirs/system-config1:/var/volatile/tmp/autoptr/union-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/union-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/union-info/.dirs/system-data1:/var/volatile/tmp/autoptr/union-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/union-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/union-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/union-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 19 /autoptr/union-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/value-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/value-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/value-info/.dirs/system-config1:/var/volatile/tmp/autoptr/value-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/value-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/value-info/.dirs/system-data1:/var/volatile/tmp/autoptr/value-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/value-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/value-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/value-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 20 /autoptr/value-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/autoptr/vfunc-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/autoptr/vfunc-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/autoptr/vfunc-info/.dirs/system-config1:/var/volatile/tmp/autoptr/vfunc-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/autoptr/vfunc-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/autoptr/vfunc-info/.dirs/system-data1:/var/volatile/tmp/autoptr/vfunc-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/autoptr/vfunc-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/autoptr/vfunc-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/autoptr/vfunc-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 21 /autoptr/vfunc-info
# End of autoptr tests
# Start of auto tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/auto/arg-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/auto/arg-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/auto/arg-info/.dirs/system-config1:/var/volatile/tmp/auto/arg-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/auto/arg-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/auto/arg-info/.dirs/system-data1:/var/volatile/tmp/auto/arg-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/auto/arg-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/auto/arg-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/auto/arg-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 22 /auto/arg-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/auto/type-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/auto/type-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/auto/type-info/.dirs/system-config1:/var/volatile/tmp/auto/type-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/auto/type-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/auto/type-info/.dirs/system-data1:/var/volatile/tmp/auto/type-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/auto/type-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/auto/type-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/auto/type-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 23 /auto/type-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/auto/function-invoker/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/auto/function-invoker/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/auto/function-invoker/.dirs/system-config1:/var/volatile/tmp/auto/function-invoker/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/auto/function-invoker/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/auto/function-invoker/.dirs/system-data1:/var/volatile/tmp/auto/function-invoker/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/auto/function-invoker/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/auto/function-invoker/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/auto/function-invoker/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 24 /auto/function-invoker
# End of auto tests
PASS: glib/autoptr-girepository.test
Running test: glib/g-file-info-filesystem-readonly.test
TAP version 14
# random seed: R02S16347603f91db064e43f711ef2cc10b4
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=787731
1..2
# Start of g-file-info-filesystem-readonly tests
ok 1 /g-file-info-filesystem-readonly/test-fs-ro # SKIP 'bindfs' and 'fusermount' commands are needed to run this test
ok 2 /g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor # SKIP 'bindfs' and 'fusermount' commands are needed to run this test
# End of g-file-info-filesystem-readonly tests
PASS: glib/g-file-info-filesystem-readonly.test
Running test: glib/enums.test
TAP version 14
# random seed: R02Sc3105d22d6b5826a1811eaf8d3cb2277
1..4
# Start of enum tests
ok 1 /enum/basic
ok 2 /enum/define-type
# End of enum tests
# Start of flags tests
ok 3 /flags/basic
ok 4 /flags/define-type
# End of flags tests
PASS: glib/enums.test
Running test: glib/gdbus-address-get-session.test
TAP version 14
# random seed: R02Sf516fb5e913afb0516bb29a560b2c876
1..2
# Start of gdbus tests
ok 1 /gdbus/x11-autolaunch
ok 2 /gdbus/xdg-runtime
# End of gdbus tests
PASS: glib/gdbus-address-get-session.test
Running test: glib/gdbus-server-auth.test
TAP version 14
# random seed: R02S7f3ac6c93356b910b2732f3bdb809038
1..9
# Start of gdbus tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/.dirs/runtime
# Testing GDBus server at unix:dir=/var/volatile/tmp/gdbus-server-auth-17UT42 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:false tcp:false
# Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-17UT42/dbus-nJFpG4a4
# GLib-GIO-DEBUG: Accepting "ANONYMOUS" authentication
# GLib-GIO-DEBUG: Accepting "DBUS_COOKIE_SHA1" authentication
# GLib-GIO-DEBUG: Accepting "EXTERNAL" authentication
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 1567
ok 1 /gdbus/server-auth # SKIP Testing interop with libdbus not supported
# Start of server-auth tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/abstract/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/abstract/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/abstract/.dirs/runtime
# Testing GDBus server at unix:tmpdir=/var/volatile/tmp/gdbus-server-auth-QOQT42 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:true tcp:false
# Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-QOQT42/dbus-UAAw9mwr
# GLib-GIO-DEBUG: Accepting "ANONYMOUS" authentication
# GLib-GIO-DEBUG: Accepting "DBUS_COOKIE_SHA1" authentication
# GLib-GIO-DEBUG: Accepting "EXTERNAL" authentication
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 1567
ok 2 /gdbus/server-auth/abstract # SKIP Testing interop with libdbus not supported
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/tcp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/tcp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/tcp/.dirs/runtime
# Testing GDBus server at tcp:host=127.0.0.1 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:false tcp:true
# Connectable address: tcp:host=127.0.0.1,port=45615
# GLib-GIO-DEBUG: Accepting "ANONYMOUS" authentication
# GLib-GIO-DEBUG: Accepting "DBUS_COOKIE_SHA1" authentication
# GLib-GIO-DEBUG: Accepting "EXTERNAL" authentication
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=0
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=0
# GLib-GIO-DEBUG: Server says GDBus client is uid 4294967295, pid -1
ok 3 /gdbus/server-auth/tcp # SKIP Testing interop with libdbus not supported
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/anonymous/.dirs/runtime
# Testing GDBus server at unix:dir=/var/volatile/tmp/gdbus-server-auth-Z8RT42 / libdbus client, with flags: external:false anonymous:true sha1:false abstract:false tcp:false
# Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-Z8RT42/dbus-7OnjNRjW
# GLib-GIO-DEBUG: Accepting ANONYMOUS authentication
# GLib-GIO-DEBUG: Rejecting "DBUS_COOKIE_SHA1" authentication: not ANONYMOUS
# GLib-GIO-DEBUG: Rejecting "EXTERNAL" authentication: not ANONYMOUS
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 1567
ok 4 /gdbus/server-auth/anonymous # SKIP Testing interop with libdbus not supported
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/external/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/external/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/external/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/external/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/external/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/external/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/external/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/external/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/external/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/external/.dirs/runtime
# Testing GDBus server at unix:dir=/var/volatile/tmp/gdbus-server-auth-AWRT42 / libdbus client, with flags: external:true anonymous:false sha1:false abstract:false tcp:false
# Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-AWRT42/dbus-jaohQtBm
# GLib-GIO-DEBUG: Rejecting "ANONYMOUS" authentication: not EXTERNAL
# GLib-GIO-DEBUG: Rejecting "DBUS_COOKIE_SHA1" authentication: not EXTERNAL
# GLib-GIO-DEBUG: Accepting EXTERNAL authentication
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 1567
ok 5 /gdbus/server-auth/external # SKIP Testing interop with libdbus not supported
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/sha1/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/sha1/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/sha1/.dirs/runtime
# Testing GDBus server at unix:dir=/var/volatile/tmp/gdbus-server-auth-D0LT42 / libdbus client, with flags: external:false anonymous:false sha1:true abstract:false tcp:false
# Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-D0LT42/dbus-kjoAm7HK
# GLib-GIO-DEBUG: Rejecting "ANONYMOUS" authentication: not DBUS_COOKIE_SHA1
# GLib-GIO-DEBUG: Accepting DBUS_COOKIE_SHA1 authentication
# GLib-GIO-DEBUG: Rejecting "EXTERNAL" authentication: not DBUS_COOKIE_SHA1
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 1567
ok 6 /gdbus/server-auth/sha1 # SKIP Testing interop with libdbus not supported
# Start of anonymous tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/anonymous/tcp/.dirs/runtime
# Testing GDBus server at tcp:host=127.0.0.1 / libdbus client, with flags: external:false anonymous:true sha1:false abstract:false tcp:true
# Connectable address: tcp:host=127.0.0.1,port=46675
# GLib-GIO-DEBUG: Accepting ANONYMOUS authentication
# GLib-GIO-DEBUG: Rejecting "DBUS_COOKIE_SHA1" authentication: not ANONYMOUS
# GLib-GIO-DEBUG: Rejecting "EXTERNAL" authentication: not ANONYMOUS
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=0
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=0
# GLib-GIO-DEBUG: Server says GDBus client is uid 4294967295, pid -1
ok 7 /gdbus/server-auth/anonymous/tcp # SKIP Testing interop with libdbus not supported
# End of anonymous tests
# Start of external tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/external/require-same-user/.dirs/runtime
# Testing GDBus server at unix:dir=/var/volatile/tmp/gdbus-server-auth-DZMT42 / libdbus client, with flags: external:true anonymous:false sha1:false abstract:false tcp:false
# Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-DZMT42/dbus-o0bEgo0Y
# GLib-GIO-DEBUG: Rejecting "ANONYMOUS" authentication: not EXTERNAL
# GLib-GIO-DEBUG: Rejecting "DBUS_COOKIE_SHA1" authentication: not EXTERNAL
# GLib-GIO-DEBUG: Accepting EXTERNAL authentication
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=1567,uid=1000,gid=1000
# GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 1567
ok 8 /gdbus/server-auth/external/require-same-user # SKIP Testing interop with libdbus not supported
# End of external tests
# Start of sha1 tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/sha1/tcp/.dirs/runtime
# Testing GDBus server at tcp:host=127.0.0.1 / libdbus client, with flags: external:false anonymous:false sha1:true abstract:false tcp:true
# Connectable address: tcp:host=127.0.0.1,port=45649
# GLib-GIO-DEBUG: Rejecting "ANONYMOUS" authentication: not DBUS_COOKIE_SHA1
# GLib-GIO-DEBUG: Accepting DBUS_COOKIE_SHA1 authentication
# GLib-GIO-DEBUG: Rejecting "EXTERNAL" authentication: not DBUS_COOKIE_SHA1
# GLib-GIO-DEBUG: Authorizing peer with credentials: GCredentials:linux-ucred:pid=0
# GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=0
# GLib-GIO-DEBUG: Server says GDBus client is uid 4294967295, pid -1
ok 9 /gdbus/server-auth/sha1/tcp # SKIP Testing interop with libdbus not supported
# End of sha1 tests
# End of server-auth tests
# End of gdbus tests
PASS: glib/gdbus-server-auth.test
Running test: glib/io-channel.test
TAP version 14
# random seed: R02S4ff9c7e02026d47596008c782f006644
1..2
# Start of io-channel tests
# Line one
# 
# Line two
# 
# Line three
# 
# /* Hello */
# 
# \x1234\x567890\x6666
# 
# read 62 bytes, wrote 62 bytes
ok 1 /io-channel/read-write
# Start of read-line tests
# /io-channel/read-line/embedded-nuls summary: Test that reading a line containing embedded nuls works when using non-standard line terminators.
ok 2 /io-channel/read-line/embedded-nuls
# End of read-line tests
# End of io-channel tests
PASS: glib/io-channel.test
Running test: glib/contexts.test
TAP version 14
# random seed: R02S418a046213238634c17b11d7abb29369
1..5
# Start of gio tests
# Start of contexts tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /gio/contexts/thread-independence
ok 2 /gio/contexts/context-independence
# Start of context-specific tests
ok 3 /gio/contexts/context-specific/identity
ok 4 /gio/contexts/context-specific/emit
ok 5 /gio/contexts/context-specific/emit-and-unref
# End of context-specific tests
# End of contexts tests
# End of gio tests
PASS: glib/contexts.test
Running test: glib/null-settings-backend.test
TAP version 14
# random seed: R02Sc64a86563feb8dd370823dc562e36c3d
1..1
# Start of null-settings-backend tests
ok 1 /null-settings-backend/extension-point-registered
# End of null-settings-backend tests
PASS: glib/null-settings-backend.test
Running test: glib/converter.test
TAP version 14
# random seed: R02See3d8971307991f374cc3a094da99cc2
1..2
# Start of converter tests
ok 1 /converter/bytes
ok 2 /converter/extra-bytes-at-end
# End of converter tests
PASS: glib/converter.test
Running test: glib/proxy-test.test
TAP version 14
# random seed: R02S9ae799671554d516f836b924b25e7b40
1..11
# Start of proxy tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation test (GTestProxyResolver) for ?gio-proxy-resolver?
ok 1 /proxy/direct_sync
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672250 and GSocketClientAsyncConnectData 0x562bb4671780
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4672be0 for GSocketClientAsyncConnectData 0x562bb4671780
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 2 /proxy/direct_async
ok 3 /proxy/single_sync
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672740 and GSocketClientAsyncConnectData 0x562bb4671780
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4672be0 for GSocketClientAsyncConnectData 0x562bb4671780
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 4 /proxy/single_async
ok 5 /proxy/multiple_sync
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb46729e0 and GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb46745b0 for GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb46740c0 for GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 6 /proxy/multiple_async
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2597
ok 7 /proxy/invalid-uris-sync
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2597
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672590 and GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Address enumeration failed: Unspecified proxy lookup failure
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Unspecified proxy lookup failure
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672740 and GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Address enumeration failed: Unspecified proxy lookup failure
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Unspecified proxy lookup failure
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672590 and GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4672c40 for GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672740 and GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4672be0 for GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 8 /proxy/invalid-uris-async
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672250 and GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: IPv6 DNS error: Not found
# GLib-GIO-DEBUG: IPv4 DNS error: Not found
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Address enumeration failed: Not found
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Not found
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4674be0 and GSocketClientAsyncConnectData 0x562bb4672b30
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4673d30 for GSocketClientAsyncConnectData 0x562bb4672b30
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Address enumeration failed: (null)
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Unsupported protocol
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672590 and GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4672c40 for GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 9 /proxy/dns
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672250 and GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb46745b0 for GSocketClientAsyncConnectData 0x562bb4672970
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Address enumeration failed: (null)
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Unsupported protocol
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672590 and GSocketClientAsyncConnectData 0x562bb46747c0
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4672be0 for GSocketClientAsyncConnectData 0x562bb46747c0
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
# GLib-GIO-DEBUG: g_socket_client_connect_to_uri_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x562bb4672250 and GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x562bb4673d30 for GSocketClientAsyncConnectData 0x562bb4674830
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Starting proxy connection
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration completed (out of addresses)
# GLib-GIO-DEBUG: GSocketClient: Address enumeration failed: (null)
# GLib-GIO-DEBUG: GSocketClient: Connection failed: Unsupported protocol
ok 10 /proxy/override
ok 11 /proxy/enumerator-ports
# End of proxy tests
PASS: glib/proxy-test.test
Running test: glib/messages-low-memory.py.test
TAP version 13
ok 1 __main__.TestMessagesLowMemory.test_message_memory_allocation_failure
# messages-low-memory: /usr/libexec/installed-tests/glib/messages-low-memory
# tmpdir: /tmp/tmpb5zhi0dh
# Running: ['/usr/libexec/installed-tests/glib/messages-low-memory']
# Return code: -6
# Output:
#  
# Error:
#  GLib-Message: 01:36:23.179: Simulates a situation in which we were crashing because of low-memory, leading malloc to fail instead of aborting
# GLib-Message: 01:36:23.181: bug: https://gitlab.gnome.org/GNOME/glib/-/issues/2753
# /usr/src/debug/glib-2.0/2.84.0/glib/gprintf.c:350: failed to allocate memory
1..1
PASS: glib/messages-low-memory.py.test
Running test: glib/atomic-c-89.test
TAP version 14
# random seed: R02S4a6fafd083984dbad5bc4b1d5562c290
1..2
# Start of atomic tests
ok 1 /atomic/types
ok 2 /atomic/threaded
# End of atomic tests
PASS: glib/atomic-c-89.test
Running test: glib/boxed.test
TAP version 14
# random seed: R02Sa0de78dfaa819b0631e14de8ce803cd3
1..27
# Start of boxed tests
ok 1 /boxed/define
ok 2 /boxed/ownership
ok 3 /boxed/closure
ok 4 /boxed/date
ok 5 /boxed/value
ok 6 /boxed/string
ok 7 /boxed/hashtable
ok 8 /boxed/array
ok 9 /boxed/ptrarray
ok 10 /boxed/regex
ok 11 /boxed/varianttype
ok 12 /boxed/error
ok 13 /boxed/datetime
ok 14 /boxed/matchinfo
ok 15 /boxed/keyfile
ok 16 /boxed/mainloop
ok 17 /boxed/maincontext
ok 18 /boxed/source
ok 19 /boxed/variantbuilder
ok 20 /boxed/timezone
ok 21 /boxed/pollfd
ok 22 /boxed/markup
ok 23 /boxed/thread
ok 24 /boxed/checksum
ok 25 /boxed/tree
ok 26 /boxed/patternspec
ok 27 /boxed/rand
# End of boxed tests
PASS: glib/boxed.test
Running test: glib/mutex.test
TAP version 14
# random seed: R02S59c4027da1c8146e072e1207435391b5
1..17
# Start of thread tests
ok 1 /thread/mutex1
ok 2 /thread/mutex2
ok 3 /thread/mutex3
ok 4 /thread/mutex4
Executing: glib/mutex.test
ok 5 /thread/mutex5
# slow test /thread/mutex5 executed in 1.69 secs
# Start of mutex tests
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# /thread/mutex/errno summary: Validates that errno is not touched upon return
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034
ok 6 /thread/mutex/errno
# Start of perf tests
# max perf: inf mips
ok 7 /thread/mutex/perf/uncontended
# Start of contended tests
# max perf: inf mips
ok 8 /thread/mutex/perf/contended/1
# max perf: inf mips
ok 9 /thread/mutex/perf/contended/2
# max perf: 4.000000 mips
ok 10 /thread/mutex/perf/contended/3
# max perf: inf mips
ok 11 /thread/mutex/perf/contended/4
# max perf: inf mips
ok 12 /thread/mutex/perf/contended/5
# max perf: 7.000000 mips
ok 13 /thread/mutex/perf/contended/6
# max perf: 4.000000 mips
ok 14 /thread/mutex/perf/contended/7
# max perf: 0.375000 mips
ok 15 /thread/mutex/perf/contended/8
# max perf: 2.000000 mips
ok 16 /thread/mutex/perf/contended/9
# max perf: 3.666667 mips
ok 17 /thread/mutex/perf/contended/10
# End of contended tests
# End of perf tests
# End of mutex tests
# End of thread tests
PASS: glib/mutex.test
Running test: glib/repository-search-paths.test
TAP version 14
# random seed: R02S39cac702ac69bf25a5c7eacf7a370958
1..4
# Start of repository tests
# Start of search-paths tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/search-paths/default/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/search-paths/default/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/search-paths/default/.dirs/system-config1:/var/volatile/tmp/repository/search-paths/default/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/search-paths/default/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/search-paths/default/.dirs/system-data1:/var/volatile/tmp/repository/search-paths/default/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/search-paths/default/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/search-paths/default/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/search-paths/default/.dirs/runtime
ok 1 /repository/search-paths/default
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/search-paths/prepend/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/search-paths/prepend/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/search-paths/prepend/.dirs/system-config1:/var/volatile/tmp/repository/search-paths/prepend/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/search-paths/prepend/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/search-paths/prepend/.dirs/system-data1:/var/volatile/tmp/repository/search-paths/prepend/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/search-paths/prepend/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/search-paths/prepend/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/search-paths/prepend/.dirs/runtime
ok 2 /repository/search-paths/prepend
# End of search-paths tests
# Start of library-paths tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/library-paths/default/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/library-paths/default/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/library-paths/default/.dirs/system-config1:/var/volatile/tmp/repository/library-paths/default/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/library-paths/default/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/library-paths/default/.dirs/system-data1:/var/volatile/tmp/repository/library-paths/default/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/library-paths/default/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/library-paths/default/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/library-paths/default/.dirs/runtime
ok 3 /repository/library-paths/default
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/library-paths/prepend/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/library-paths/prepend/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/library-paths/prepend/.dirs/system-config1:/var/volatile/tmp/repository/library-paths/prepend/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/library-paths/prepend/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/library-paths/prepend/.dirs/system-data1:/var/volatile/tmp/repository/library-paths/prepend/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/library-paths/prepend/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/library-paths/prepend/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/library-paths/prepend/.dirs/runtime
ok 4 /repository/library-paths/prepend
# End of library-paths tests
# End of repository tests
PASS: glib/repository-search-paths.test
Running test: glib/timer.test
TAP version 14
# random seed: R02S110ddd9d6163a97d9d548d341a9c1e51
1..10
# Start of timer tests
ok 1 /timer/basic
ok 2 /timer/stop
ok 3 /timer/continue
ok 4 /timer/reset
ok 5 /timer/is_active
# End of timer tests
# Start of timeval tests
ok 6 /timeval/add
ok 7 /timeval/from-iso8601
ok 8 /timeval/to-iso8601
# Start of to-iso8601 tests
ok 9 /timeval/to-iso8601/overflow
# End of to-iso8601 tests
# End of timeval tests
# Start of usleep tests
ok 10 /usleep/with-zero-wait
# End of usleep tests
PASS: glib/timer.test
Running test: glib/spawn-path-search.test
TAP version 14
# random seed: R02S18d47d74b9c6c0da0ce3c90af5c92eec
1..7
# Start of spawn tests
# /spawn/do-not-search summary: Without G_SPAWN_SEARCH_PATH, spawn-test-helper means ./spawn-test-helper.
# 
# this is spawn-test-helper from glib/tests
# 
ok 1 /spawn/do-not-search
# /spawn/search-path summary: With G_SPAWN_SEARCH_PATH, spawn-test-helper means $PATH/spawn-test-helper.
# 
# this is spawn-test-helper from path-test-subdir
# 
ok 2 /spawn/search-path
# /spawn/search-path-from-envp summary: With G_SPAWN_SEARCH_PATH_FROM_ENVP, spawn-test-helper means $PATH/spawn-test-helper with $PATH from envp.
# 
# this is spawn-test-helper from path-test-subdir
# 
ok 3 /spawn/search-path-from-envp
# /spawn/search-path-ambiguous summary: With G_SPAWN_SEARCH_PATH and G_SPAWN_SEARCH_PATH_FROM_ENVP, the latter wins.
# 
# this is spawn-test-helper from path-test-subdir
# 
ok 4 /spawn/search-path-ambiguous
# 
# this is spawn-test-helper from path-test-subdir
# 
ok 5 /spawn/search-path-heap-allocation
# /spawn/search-path-fallback-in-environ summary: With G_SPAWN_SEARCH_PATH but no PATH, a fallback is used.
# 
# this is spawn-test-helper from glib/tests
# 
ok 6 /spawn/search-path-fallback-in-environ
# /spawn/search-path-fallback-in-envp summary: With G_SPAWN_SEARCH_PATH_FROM_ENVP but no PATH, a fallback is used.
# 
# this is spawn-test-helper from glib/tests
# 
ok 7 /spawn/search-path-fallback-in-envp
# End of spawn tests
PASS: glib/spawn-path-search.test
Running test: glib/g-file-info.test
TAP version 14
# random seed: R02S76ca9329dec47a094f4692ece230342d
1..6
# Start of g-file-info tests
ok 1 /g-file-info/test_g_file_info
# /g-file-info/xattrs summary: Test setting and getting escaped xattrs
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 2 /g-file-info/xattrs
# /g-file-info/set-modified-date-time-precision summary: Test that g_file_info_set_modified_date_time() preserves microseconds
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3116
ok 3 /g-file-info/set-modified-date-time-precision
# Start of test_g_file_info tests
# /g-file-info/test_g_file_info/modification-time summary: Test that getting the modification time of a file works.
ok 4 /g-file-info/test_g_file_info/modification-time
# /g-file-info/test_g_file_info/access-time summary: Test that getting the access time of a file works.
ok 5 /g-file-info/test_g_file_info/access-time
# /g-file-info/test_g_file_info/creation-time summary: Test that getting the creation time of a file works.
ok 6 /g-file-info/test_g_file_info/creation-time
# End of test_g_file_info tests
# End of g-file-info tests
PASS: glib/g-file-info.test
Running test: glib/gio-tool.py.test
TAP version 13
ok 1 __main__.TestGioTool.test_help
# gio: /usr/bin/gio
# tmpdir: /tmp/tmpnddccbre
# Running: ['/usr/bin/gio', '--help']
# Return code: 0
# Output:
#  Usage:
#   gio COMMAND [ARGS…]
# 
# Commands:
#   help     Print help
#   version  Print version
#   cat      Concatenate files to standard output
#   copy     Copy one or more files
#   info     Show information about locations
#   launch   Launch an application from a desktop file
#   list     List the contents of locations
#   mime     Get or set the handler for a mimetype
#   mkdir    Create directories
#   monitor  Monitor files and directories for changes
#   mount    Mount or unmount the locations
#   move     Move one or more files
#   open     Open files with the default application
#   rename   Rename a file
#   remove   Delete one or more files
#   save     Read from standard input and save
#   set      Set a file attribute
#   trash    Move files or directories to the trash
#   tree     Lists the contents of locations in a tree
# 
# Use “gio help COMMAND” to get detailed help.
# Error:
#  
# Running: ['/usr/bin/gio', 'help']
# Return code: 0
# Output:
#  Usage:
#   gio COMMAND [ARGS…]
# 
# Commands:
#   help     Print help
#   version  Print version
#   cat      Concatenate files to standard output
#   copy     Copy one or more files
#   info     Show information about locations
#   launch   Launch an application from a desktop file
#   list     List the contents of locations
#   mime     Get or set the handler for a mimetype
#   mkdir    Create directories
#   monitor  Monitor files and directories for changes
#   mount    Mount or unmount the locations
#   move     Move one or more files
#   open     Open files with the default application
#   rename   Rename a file
#   remove   Delete one or more files
#   save     Read from standard input and save
#   set      Set a file attribute
#   trash    Move files or directories to the trash
#   tree     Lists the contents of locations in a tree
# 
# Use “gio help COMMAND” to get detailed help.
# Error:
ok 2 __main__.TestGioTool.test_info_non_default_attributes
# gio: /usr/bin/gio
# tmpdir: /tmp/tmp626x7vqq
# Running: ['/usr/bin/gio', 'info', '--attributes=standard::content-type', '/tmp/tmp626x7vqq/tmp02se4nwj']
# Return code: 0
# Output:
#  uri: file:///tmp/tmp626x7vqq/tmp02se4nwj
# local path: /tmp/tmp626x7vqq/tmp02se4nwj
# unix mount: tmpfs /var/volatile tmpfs rw,relatime
# attributes:
#   standard::content-type: application/x-zerosize
# Error:
ok 3 __main__.TestGioTool.test_no_args
# gio: /usr/bin/gio
# tmpdir: /tmp/tmpvl89ntt7
# Running: ['/usr/bin/gio']
# Return code: 1
# Output:
#  
# Error:
#  Usage:
#   gio COMMAND [ARGS…]
# 
# Commands:
#   help     Print help
#   version  Print version
#   cat      Concatenate files to standard output
#   copy     Copy one or more files
#   info     Show information about locations
#   launch   Launch an application from a desktop file
#   list     List the contents of locations
#   mime     Get or set the handler for a mimetype
#   mkdir    Create directories
#   monitor  Monitor files and directories for changes
#   mount    Mount or unmount the locations
#   move     Move one or more files
#   open     Open files with the default application
#   rename   Rename a file
#   remove   Delete one or more files
#   save     Read from standard input and save
#   set      Set a file attribute
#   trash    Move files or directories to the trash
#   tree     Lists the contents of locations in a tree
# 
# Use “gio help COMMAND” to get detailed help.
1..3
PASS: glib/gio-tool.py.test
Running test: glib/signals-refcount2.test
TAP version 14
# random seed: R02S5d377b357ef7b17f46fb10bc4a5ef5d3
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x55d2360ca3f0
# 
# init 0x55d2360c3600
# 
Executing: glib/signals-refcount2.test
# dispose 0x55d2360ca3f0!
# 
# dispose 0x55d2360c3600!
# 
ok 1 /gobject/refcount/signals
# slow test /gobject/refcount/signals executed in 5.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/signals-refcount2.test
Running test: glib/unix.test
TAP version 14
# random seed: R02S0990beb52ce1009ce19b054f05ec9eed
1..20
# Start of glib-unix tests
# /glib-unix/closefrom summary: Test g_closefrom(), g_fdwalk_set_cloexec()
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3247
ok 1 /glib-unix/closefrom
ok 2 /glib-unix/pipe
# /glib-unix/pipe-stdio-overwrite summary: Test that g_unix_open_pipe() will use the first available FD, even if it?s stdin/stdout/stderr
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2795
ok 3 /glib-unix/pipe-stdio-overwrite
# /glib-unix/pipe-struct summary: Test GUnixPipe structure
ok 4 /glib-unix/pipe-struct
# /glib-unix/pipe-struct-auto summary: Test g_auto(GUnixPipe)
ok 5 /glib-unix/pipe-struct-auto
ok 6 /glib-unix/error
ok 7 /glib-unix/nonblocking
ok 8 /glib-unix/sighup
# slow test /glib-unix/sighup executed in 0.50 secs
ok 9 /glib-unix/sigterm
# slow test /glib-unix/sigterm executed in 0.50 secs
ok 10 /glib-unix/sighup_again
# slow test /glib-unix/sighup_again executed in 0.50 secs
ok 11 /glib-unix/sighup_add_remove
ok 12 /glib-unix/sighup_nested
ok 13 /glib-unix/callback_after_signal
# slow test /glib-unix/callback_after_signal executed in 2.00 secs
ok 14 /glib-unix/child-wait
# Start of closefrom tests
# Start of subprocess tests
# End of subprocess tests
# End of closefrom tests
# Start of pipe tests
# /glib-unix/pipe/fd-cloexec summary: Test that FD_CLOEXEC is still accepted as an argument to g_unix_open_pipe()
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3459
# GLib-DEBUG: g_unix_open_pipe() called with FD_CLOEXEC; please migrate to using O_CLOEXEC instead
ok 15 /glib-unix/pipe/fd-cloexec
# End of pipe tests
# Start of sighup tests
ok 16 /glib-unix/sighup/alternate-stack
# slow test /glib-unix/sighup/alternate-stack executed in 1.00 secs
# End of sighup tests
# Start of sigterm tests
Executing: glib/unix.test
ok 17 /glib-unix/sigterm/alternate-stack
# slow test /glib-unix/sigterm/alternate-stack executed in 1.00 secs
# End of sigterm tests
# Start of sighup_again tests
ok 18 /glib-unix/sighup_again/alternate-stack
# slow test /glib-unix/sighup_again/alternate-stack executed in 1.00 secs
# End of sighup_again tests
# Start of get-passwd-entry tests
# /glib-unix/get-passwd-entry/root summary: Tests that g_unix_get_passwd_entry() works for a known-existing username.
ok 19 /glib-unix/get-passwd-entry/root
# /glib-unix/get-passwd-entry/nonexistent summary: Tests that g_unix_get_passwd_entry() returns an error for a nonexistent username.
ok 20 /glib-unix/get-passwd-entry/nonexistent
# End of get-passwd-entry tests
# End of glib-unix tests
PASS: glib/unix.test
Running test: glib/convert.test
TAP version 14
# random seed: R02S51f24b1b6255bf2ca8a0b1297e1fbb5e
1..14
# Start of conversion tests
ok 1 /conversion/no-conv
ok 2 /conversion/iconv-state
ok 3 /conversion/illegal-sequence
ok 4 /conversion/byte-order
ok 5 /conversion/unicode
ok 6 /conversion/filename-utf8
ok 7 /conversion/filename-display
ok 8 /conversion/convert-embedded-nul
# Start of locale-to-utf8 tests
ok 9 /conversion/locale-to-utf8/embedded-nul
# Start of embedded-nul tests
# Start of subprocess tests
# End of subprocess tests
# End of embedded-nul tests
# End of locale-to-utf8 tests
# Start of locale-from-utf8 tests
ok 10 /conversion/locale-from-utf8/embedded-nul
# Start of embedded-nul tests
# Start of subprocess tests
# End of subprocess tests
# End of embedded-nul tests
# End of locale-from-utf8 tests
# Start of filename-to-utf8 tests
ok 11 /conversion/filename-to-utf8/embedded-nul
# Start of embedded-nul tests
# Start of subprocess tests
# End of subprocess tests
# End of embedded-nul tests
# End of filename-to-utf8 tests
# Start of filename-from-utf8 tests
ok 12 /conversion/filename-from-utf8/embedded-nul
# Start of embedded-nul tests
# Start of subprocess tests
# End of subprocess tests
# End of embedded-nul tests
# End of filename-from-utf8 tests
# Start of filename-from-uri tests
ok 13 /conversion/filename-from-uri/query-is-ignored
ok 14 /conversion/filename-from-uri/fragment-is-ignored
# End of filename-from-uri tests
# End of conversion tests
PASS: glib/convert.test
Running test: glib/cxx-17.test
TAP version 14
# random seed: R02S774af9d86e0a83a86bd572e83d80d88f
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-17.test
Running test: glib/function-info.test
TAP version 14
# random seed: R02S85c11a1f362f008e31149936512683bb
1..1
# Start of function-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/function-info/invoker/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/function-info/invoker/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/function-info/invoker/.dirs/system-config1:/var/volatile/tmp/function-info/invoker/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/function-info/invoker/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/function-info/invoker/.dirs/system-data1:/var/volatile/tmp/function-info/invoker/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/function-info/invoker/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/function-info/invoker/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/function-info/invoker/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /function-info/invoker summary: Test preparing a function invoker
ok 1 /function-info/invoker
# End of function-info tests
PASS: glib/function-info.test
Running test: glib/properties.test
TAP version 14
# random seed: R02S671780c7368c6c574e98dd9c2acfb003
1..13
# Start of properties tests
ok 1 /properties/install
ok 2 /properties/install-many
ok 3 /properties/notify
ok 4 /properties/notify-queue
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=630357
ok 5 /properties/construct
# /properties/get-property summary: g_object_get_property() accepts uninitialized, initialized, and transformable values
# Test g_object_get_property with an initialized value
# Test g_object_get_property with an uninitialized value
# Test g_object_get_property with a transformable value
ok 6 /properties/get-property
ok 7 /properties/testv_with_no_properties
ok 8 /properties/testv_with_valid_properties
ok 9 /properties/testv_with_invalid_property_type
ok 10 /properties/testv_with_invalid_property_names
ok 11 /properties/testv_getv
ok 12 /properties/testv_notify_queue
# Start of set-property tests
# Start of variant tests
# /properties/set-property/variant/floating summary: Test that setting a property to a floating variant consumes the reference
ok 13 /properties/set-property/variant/floating
# End of variant tests
# End of set-property tests
# End of properties tests
PASS: glib/properties.test
Running test: glib/power-profile-monitor-portal.test
TAP version 13
ok 1 __main__.TestPowerProfileMonitorPortal.test_power_profile_power_saver_enabled_portal # SKIP xdg-desktop-portal not available
ok 2 __main__.TestPowerProfileMonitorPortal.test_power_profile_power_saver_enabled_portal_default # SKIP xdg-desktop-portal not available
1..2
PASS: glib/power-profile-monitor-portal.test
Running test: glib/contenttype.test
TAP version 14
# random seed: R02S45263f1acc43f5d7f446b5a5eaa337c3
1..14
# Start of contenttype tests
ok 1 /contenttype/guess
ok 2 /contenttype/guess_svg_from_data
ok 3 /contenttype/mime_to_content # SKIP mime from content type test not implemented on UNIX
ok 4 /contenttype/mime_from_content # SKIP mime from content type test not implemented on UNIX
ok 5 /contenttype/unknown
ok 6 /contenttype/subtype
ok 7 /contenttype/list
ok 8 /contenttype/executable
ok 9 /contenttype/description
ok 10 /contenttype/icon
ok 11 /contenttype/symbolic-icon
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 12 /contenttype/tree
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3168
ok 13 /contenttype/tree_invalid_encoding
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=782311
ok 14 /contenttype/test_type_is_a_special_case
# End of contenttype tests
PASS: glib/contenttype.test
Running test: glib/unicode-encoding.test
TAP version 14
# random seed: R02Sfacbc18312912afb61593016874202e8
1..1
# Start of unicode tests
ok 1 /unicode/encoding
# End of unicode tests
PASS: glib/unicode-encoding.test
Running test: glib/accumulator.test
TAP version 14
# random seed: R02S1173fdbe959ee37e8d1d9652d5c80f31
1..1
# Start of gobject tests
ok 1 /gobject/accumulator
# End of gobject tests
PASS: glib/accumulator.test
Running test: glib/async-close-output-stream.test
TAP version 14
# random seed: R02Sd4c8648de011022bb8a55feb46a4ae0e
1..3
# Start of close-async tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=617937
ok 1 /close-async/without-flush
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=617937
ok 2 /close-async/with-flush
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=617937
ok 3 /close-async/with-async-flush
# End of close-async tests
PASS: glib/async-close-output-stream.test
Running test: glib/atomic-c-11.test
TAP version 14
# random seed: R02S1c5095b6864dbea42e91a70e9ed12db5
1..2
# Start of atomic tests
ok 1 /atomic/types
ok 2 /atomic/threaded
# End of atomic tests
PASS: glib/atomic-c-11.test
Running test: glib/environment.test
TAP version 14
# random seed: R02S32cb0ed8f119576a243ffc2cc3c86305
1..6
# Start of environ tests
# /environ/listenv summary: Test g_get_environ() returns an array of unique keys, all of which can be individually queried using g_getenv() to return the same value.
ok 1 /environ/listenv
# /environ/getenv summary: Test setting an environment variable using g_setenv(), and that the updated value is queryable using g_getenv().
ok 2 /environ/getenv
ok 3 /environ/setenv
# /environ/array summary: Test getting and setting variables on a local envp array (rather than the global envp).
ok 4 /environ/array
# /environ/null summary: Test getting and setting variables on a NULL envp array.
ok 5 /environ/null
# /environ/case summary: Test that matching environment variables is case-insensitive on Windows and not on other platforms, since envvars were case-insensitive on DOS.
ok 6 /environ/case
# End of environ tests
PASS: glib/environment.test
Running test: glib/io-stream.test
TAP version 14
# random seed: R02Sebd7cc0501f7cd3e889ee8ac068ed58a
1..3
# Start of io-stream tests
ok 1 /io-stream/copy-chunks
# Start of close tests
# Start of async tests
ok 2 /io-stream/close/async/memory
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 3 /io-stream/close/async/file
# End of async tests
# End of close tests
# End of io-stream tests
PASS: glib/io-stream.test
Running test: glib/gi-compile-repository.py.test
TAP version 13
ok 1 __main__.TestGICompileRepository.test_open_failure
# gir path set to [PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmpd6o1j_az
# Running: ['/usr/bin/gi-compile-repository', 'this-is/not/a-file.gir', '--output', '/tmp/tmpd6o1j_az/invalid.typelib']
# Return code: 1
# Output:
#  
# Error:
#  Error parsing file ‘this-is/not/a-file.gir’: Failed to open file “this-is/not/a-file.gir”: No such file or directory
ok 2 __main__.TestGICompileRepositoryForGLib.test_compile
# gir path set to [PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmpyhfy0iae
# Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GLib-2.0.gir', '--output', '/tmp/tmpyhfy0iae/GLib-2.typelib']
# Return code: 0
# Output:
#  
# Error:
ok 3 __main__.TestGICompileRepositoryForGLib.test_write_failure
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmphtejdnl4
# Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GLib-2.0.gir', '--output', 'this-is/not/a-good-output/invalid.typelib']
# Return code: 1
# Output:
#  
# Error:
#  Failed to open ‘this-is/not/a-good-output/invalid.typelib.tmp’: No such file or directory
ok 4 __main__.TestGICompileRepositoryForGObject.test_compile
# gir path set to [PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmpsmuq8646
# Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GObject-2.0.gir', '--output', '/tmp/tmpsmuq8646/GObject-2.typelib', '--includedir', '/usr/share/gir-1.0', '--includedir', '/usr/share/gir-1.0']
# Return code: 0
# Output:
#  
# Error:
ok 5 __main__.TestGICompileRepositoryForGObject.test_write_failure
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmpmzk0sw3y
# Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GObject-2.0.gir', '--output', 'this-is/not/a-good-output/invalid.typelib', '--includedir', '/usr/share/gir-1.0', '--includedir', '/usr/share/gir-1.0']
# Return code: 1
# Output:
#  
# Error:
#  Failed to open ‘this-is/not/a-good-output/invalid.typelib.tmp’: No such file or directory
ok 6 __main__.TestGICompileRepositoryForGio.test_compile
# gir path set to [PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')]
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmpfb2ht_7m
# Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/Gio-2.0.gir', '--output', '/tmp/tmpfb2ht_7m/Gio-2.typelib', '--includedir', '/usr/share/gir-1.0', '--includedir', '/usr/share/gir-1.0']
# Return code: 0
# Output:
#  
# Error:
ok 7 __main__.TestGICompileRepositoryForGio.test_write_failure
# gi-compile-repository: /usr/bin/gi-compile-repository
# tmpdir: /tmp/tmpq2txjj6r
# Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/Gio-2.0.gir', '--output', 'this-is/not/a-good-output/invalid.typelib', '--includedir', '/usr/share/gir-1.0', '--includedir', '/usr/share/gir-1.0']
# Return code: 1
# Output:
#  
# Error:
#  Failed to open ‘this-is/not/a-good-output/invalid.typelib.tmp’: No such file or directory
1..7
PASS: glib/gi-compile-repository.py.test
Running test: glib/spawn-test.test
TAP version 14
# random seed: R02S477487693f97959efaebc74a5cc6365d
1..2
# Start of spawn tests
ok 1 /spawn/basics
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/16
# Fetching GSpawn result output and error output with stdin open, stdout open, stderr open
# Fetching GSpawn result output and error output with stdin open, stdout open, stderr already closed
# Fetching GSpawn result output and error output with stdin open, stdout already closed, stderr open
# Fetching GSpawn result output and error output with stdin open, stdout already closed, stderr already closed
# Fetching GSpawn result output and error output with stdin already closed, stdout open, stderr open
# Fetching GSpawn result output and error output with stdin already closed, stdout open, stderr already closed
# Fetching GSpawn result output and error output with stdin already closed, stdout already closed, stderr open
# Fetching GSpawn result output and error output with stdin already closed, stdout already closed, stderr already closed
# Fetching GSpawn result output with stdin open, stdout open, stderr open
# Fetching GSpawn result output with stdin open, stdout open, stderr already closed
# Fetching GSpawn result output with stdin open, stdout already closed, stderr open
# Fetching GSpawn result output with stdin open, stdout already closed, stderr already closed
# Fetching GSpawn result output with stdin already closed, stdout open, stderr open
# Fetching GSpawn result output with stdin already closed, stdout open, stderr already closed
# Fetching GSpawn result output with stdin already closed, stdout already closed, stderr open
# Fetching GSpawn result output with stdin already closed, stdout already closed, stderr already closed
# Fetching GSpawn result error output with stdin open, stdout open, stderr open
# Fetching GSpawn result error output with stdin open, stdout open, stderr already closed
# Fetching GSpawn result error output with stdin open, stdout already closed, stderr open
# Fetching GSpawn result error output with stdin open, stdout already closed, stderr already closed
# Fetching GSpawn result error output with stdin already closed, stdout open, stderr open
# Fetching GSpawn result error output with stdin already closed, stdout open, stderr already closed
# Fetching GSpawn result error output with stdin already closed, stdout already closed, stderr open
# Fetching GSpawn result error output with stdin already closed, stdout already closed, stderr already closed
# Fetching GSpawn result  with stdin open, stdout open, stderr open
# Fetching GSpawn result  with stdin open, stdout open, stderr already closed
# Fetching GSpawn result  with stdin open, stdout already closed, stderr open
# Fetching GSpawn result  with stdin open, stdout already closed, stderr already closed
# Fetching GSpawn result  with stdin already closed, stdout open, stderr open
# Fetching GSpawn result  with stdin already closed, stdout open, stderr already closed
# Fetching GSpawn result  with stdin already closed, stdout already closed, stderr open
# Fetching GSpawn result  with stdin already closed, stdout already closed, stderr already closed
ok 2 /spawn/stdio-overwrite
# End of spawn tests
PASS: glib/spawn-test.test
Running test: glib/cxx-11.test
TAP version 14
# random seed: R02S75fca9022677496213956dddff802404
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-11.test
Running test: glib/list.test
TAP version 14
# random seed: R02S0a78df8ef2f924e12c4c9a0c690f6203
1..20
# Start of list tests
ok 1 /list/sort
ok 2 /list/sort-with-data
ok 3 /list/insert-before-link
ok 4 /list/insert-sorted
ok 5 /list/insert-sorted-with-data
ok 6 /list/reverse
ok 7 /list/nth
ok 8 /list/concat
ok 9 /list/remove
ok 10 /list/remove-all
ok 11 /list/first-last
ok 12 /list/insert
ok 13 /list/free-full
ok 14 /list/copy
ok 15 /list/copy-deep
ok 16 /list/delete-link
ok 17 /list/prepend
ok 18 /list/position
ok 19 /list/double-free
# Start of sort tests
ok 20 /list/sort/stable
# End of sort tests
# End of list tests
PASS: glib/list.test
Running test: glib/markup-subparser.test
TAP version 14
# random seed: R02Sf5fb6e684e51c04a4dc3764d8fbdd010
1..14
# Start of glib tests
# Start of markup tests
# Start of subparser tests
# Start of success tests
ok 1 /glib/markup/subparser/success/0
ok 2 /glib/markup/subparser/success/1
ok 3 /glib/markup/subparser/success/2
ok 4 /glib/markup/subparser/success/3
ok 5 /glib/markup/subparser/success/4
ok 6 /glib/markup/subparser/success/5
ok 7 /glib/markup/subparser/success/6
# End of success tests
# Start of failure tests
ok 8 /glib/markup/subparser/failure/0
ok 9 /glib/markup/subparser/failure/1
ok 10 /glib/markup/subparser/failure/2
ok 11 /glib/markup/subparser/failure/3
ok 12 /glib/markup/subparser/failure/4
ok 13 /glib/markup/subparser/failure/5
ok 14 /glib/markup/subparser/failure/6
# End of failure tests
# End of subparser tests
# End of markup tests
# End of glib tests
PASS: glib/markup-subparser.test
Running test: glib/gutils-user-database.test
TAP version 14
# random seed: R02Sc5ed466fd311a6227b9d9844118382f7
1..1
# Start of gutils tests
ok 1 /gutils/get_user_database_entry
# End of gutils tests
PASS: glib/gutils-user-database.test
Running test: glib/unicode-normalize.test
TAP version 14
# random seed: R02S042d2670f04f9949f6ec49f047afaf01
1..3
# Start of unicode tests
# Processing Part0 # Specific cases
# Processing Part1 # Character by character test
# Processing Part2 # Canonical Order Test
# Processing Part3 # PRI #29 Test
# Processing Part4 # Canonical closures (excluding Hangul)
# Processing Part5 # Chained primary composites
ok 1 /unicode/normalize
# Invalid UTF-8 vector 0
# Invalid UTF-8 vector 1
# Invalid UTF-8 vector 2
# Invalid UTF-8 vector 3
# Invalid UTF-8 vector 4
# Invalid UTF-8 vector 5
# Invalid UTF-8 vector 6
# Invalid UTF-8 vector 7
# Invalid UTF-8 vector 8
# Invalid UTF-8 vector 9
# Invalid UTF-8 vector 10
# Invalid UTF-8 vector 11
# Invalid UTF-8 vector 12
ok 2 /unicode/normalize-invalid
# Start of normalize tests
ok 3 /unicode/normalize/bad-length
# End of normalize tests
# End of unicode tests
PASS: glib/unicode-normalize.test
Running test: glib/portal-support-flatpak-full.test
TAP version 14
# random seed: R02S5fdb2cfd6075213192f70b4c911a1ba0
1..1
# Start of portal-support tests
# Start of flatpak tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/flatpak/full/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/flatpak/full/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/flatpak/full/.dirs/system-config1:/var/volatile/tmp/portal-support/flatpak/full/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/flatpak/full/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/flatpak/full/.dirs/system-data1:/var/volatile/tmp/portal-support/flatpak/full/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/flatpak/full/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/flatpak/full/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/flatpak/full/.dirs/runtime
# Creating .flatpak-info in /var/volatile/tmp/portal-support/flatpak/full/.dirs/runtime/.flatpak-info
ok 1 /portal-support/flatpak/full
# End of flatpak tests
# End of portal-support tests
PASS: glib/portal-support-flatpak-full.test
Running test: glib/sequence.test
TAP version 14
# random seed: R02Sfe2f8499afb58deb552886bd8c9864bf
1..16
# Start of sequence tests
ok 1 /sequence/out-of-range-jump
ok 2 /sequence/iter-move
ok 3 /sequence/insert-sorted-non-pointer
ok 4 /sequence/stable-sort
ok 5 /sequence/is_empty
# Start of random tests
ok 6 /sequence/random/seed:825541564
ok 7 /sequence/random/seed:801678400
ok 8 /sequence/random/seed:1477639090
Executing: glib/sequence.test
ok 9 /sequence/random/seed:3369132895
ok 10 /sequence/random/seed:1192944867
ok 11 /sequence/random/seed:770458294
ok 12 /sequence/random/seed:1099575817
ok 13 /sequence/random/seed:590523467
ok 14 /sequence/random/seed:3583571454
ok 15 /sequence/random/seed:579241222
ok 16 /sequence/random/seed:844650628
# End of random tests
# End of sequence tests
PASS: glib/sequence.test
Running test: glib/power-profile-monitor-dbus.test
TAP version 13
ok 1 __main__.TestPowerProfileMonitor.test_power_profile_power_saver_enabled
1..1
PASS: glib/power-profile-monitor-dbus.test
Running test: glib/bytes.test
TAP version 14
# random seed: R02S38af173d0fb3da085f04e620394cd19e
1..21
# Start of bytes tests
ok 1 /bytes/new
ok 2 /bytes/new-take
ok 3 /bytes/new-static
ok 4 /bytes/new-with-free-func
ok 5 /bytes/new-from-bytes
ok 6 /bytes/new-from-bytes-slice
ok 7 /bytes/new-from-bytes-shared-ref
ok 8 /bytes/hash
ok 9 /bytes/equal
ok 10 /bytes/compare
ok 11 /bytes/null
ok 12 /bytes/get-region
# /bytes/unref-null summary: Test that calling g_bytes_unref() on NULL is a no-op
ok 13 /bytes/unref-null
# Start of to-data tests
ok 14 /bytes/to-data/transferred
ok 15 /bytes/to-data/two-refs
ok 16 /bytes/to-data/non-malloc
ok 17 /bytes/to-data/different-free-func
# End of to-data tests
# Start of to-array tests
ok 18 /bytes/to-array/transferred
ok 19 /bytes/to-array/two-refs
ok 20 /bytes/to-array/non-malloc
# Start of transferred tests
# g_bytes_unref_to_array() can only take GBytes up to G_MAXUINT in length; test that longer ones are rejected
ok 21 /bytes/to-array/transferred/oversize
# End of transferred tests
# End of to-array tests
# End of bytes tests
PASS: glib/bytes.test
Running test: glib/gdbus-peer.test
TAP version 14
# random seed: R02S6833f80a8a05d4b9365649fe2d2a8a48
1..12
# Start of gdbus tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/.dirs/runtime
# Testing with unix:dir address
# Testing with unix:tmpdir address
# Testing with unix:path address
ok 1 /gdbus/peer-to-peer
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/system-config1:/var/volatile/tmp/gdbus/delayed-message-processing/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/system-data1:/var/volatile/tmp/gdbus/delayed-message-processing/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/delayed-message-processing/.dirs/runtime
# Testing with unix:dir address
ok 2 /gdbus/delayed-message-processing
# slow test /gdbus/delayed-message-processing executed in 0.51 secs
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/system-config1:/var/volatile/tmp/gdbus/nonce-tcp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/system-data1:/var/volatile/tmp/gdbus/nonce-tcp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/nonce-tcp/.dirs/runtime
ok 3 /gdbus/nonce-tcp
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/system-config1:/var/volatile/tmp/gdbus/tcp-anonymous/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/system-data1:/var/volatile/tmp/gdbus/tcp-anonymous/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/tcp-anonymous/.dirs/runtime
ok 4 /gdbus/tcp-anonymous
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/credentials/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/credentials/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/credentials/.dirs/system-config1:/var/volatile/tmp/gdbus/credentials/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/credentials/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/credentials/.dirs/system-data1:/var/volatile/tmp/gdbus/credentials/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/credentials/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/credentials/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/credentials/.dirs/runtime
ok 5 /gdbus/credentials
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/system-config1:/var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/system-data1:/var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/codegen-peer-to-peer/.dirs/runtime
# Testing with unix:dir address
# Machine ID: de67706659428d0d93d0d78e67f871f8
ok 6 /gdbus/codegen-peer-to-peer
# slow test /gdbus/codegen-peer-to-peer executed in 1.11 secs
# Start of peer-to-peer tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/signals/.dirs/runtime
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1620
# Testing with unix:dir address
ok 7 /gdbus/peer-to-peer/signals
# Start of invalid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/invalid/server/.dirs/runtime
ok 8 /gdbus/peer-to-peer/invalid/server
# Start of conn tests
# Start of stream tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/async/.dirs/runtime
ok 9 /gdbus/peer-to-peer/invalid/conn/stream/async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/stream/sync/.dirs/runtime
ok 10 /gdbus/peer-to-peer/invalid/conn/stream/sync
# End of stream tests
# Start of addr tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/async/.dirs/runtime
ok 11 /gdbus/peer-to-peer/invalid/conn/addr/async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-to-peer/invalid/conn/addr/sync/.dirs/runtime
ok 12 /gdbus/peer-to-peer/invalid/conn/addr/sync
# End of addr tests
# End of conn tests
# End of invalid tests
# End of peer-to-peer tests
# End of gdbus tests
PASS: glib/gdbus-peer.test
Running test: glib/rcbox.test
TAP version 14
# random seed: R02Scdee59a8a3acce0f9e70333392f8fbec
1..8
# Start of rcbox tests
ok 1 /rcbox/new
# global_point = 0x5645b25b5dc0
ok 2 /rcbox/release-full
# global_point_a = 0x5645b25b5dc0
# global_point_b = 0x5645b25b5e90
ok 3 /rcbox/dup
ok 4 /rcbox/alignment
# End of rcbox tests
# Start of atomic-rcbox tests
ok 5 /atomic-rcbox/new
# global_point = 0x5645b25b5e90
ok 6 /atomic-rcbox/release-full
# global_point_a = 0x5645b25b5e90
# global_point_b = 0x5645b25b5dc0
ok 7 /atomic-rcbox/dup
ok 8 /atomic-rcbox/alignment
# End of atomic-rcbox tests
PASS: glib/rcbox.test
Running test: glib/queue.test
TAP version 14
# random seed: R02Sd7848c7c79a374301889845c262c932f
1..12
# Start of queue tests
ok 1 /queue/basic
ok 2 /queue/copy
ok 3 /queue/off-by-one
ok 4 /queue/find-custom
ok 5 /queue/static
ok 6 /queue/clear
ok 7 /queue/free-full
ok 8 /queue/clear-full
ok 9 /queue/insert-sibling-link
ok 10 /queue/push-nth-link
# Start of clear-full tests
ok 11 /queue/clear-full/noop
# End of clear-full tests
# Start of random tests
ok 12 /queue/random/seed:1307963362
# End of random tests
# End of queue tests
PASS: glib/queue.test
Running test: glib/refcount-macro.test
TAP version 14
# random seed: R02S674c2a2778c65cf8cb974b8b216b9269
1..4
# Start of refcount tests
ok 1 /refcount/grefcount
ok 2 /refcount/gatomicrefcount
# Start of grefcount tests
ok 3 /refcount/grefcount/saturation
# End of grefcount tests
# Start of gatomicrefcount tests
ok 4 /refcount/gatomicrefcount/saturation
# End of gatomicrefcount tests
# End of refcount tests
PASS: glib/refcount-macro.test
Running test: glib/tree.test
Executing: glib/tree.test
TAP version 14
# random seed: R02S9e24458cbcaaba0ad111c2ea9a579088
1..7
# Start of tree tests
ok 1 /tree/search
ok 2 /tree/remove
ok 3 /tree/destroy
ok 4 /tree/traverse
ok 5 /tree/insert
ok 6 /tree/bounds
ok 7 /tree/remove-all
# End of tree tests
PASS: glib/tree.test
Running test: glib/unicode.test
TAP version 14
# random seed: R02S3ee49ea8b2c980723fdedcd78c67b5cb
1..39
# Start of unicode tests
ok 1 /unicode/alnum
ok 2 /unicode/alpha
ok 3 /unicode/break-type
ok 4 /unicode/canonical-decomposition
ok 5 /unicode/casefold
ok 6 /unicode/casemap_and_casefold
ok 7 /unicode/cases
ok 8 /unicode/character-type
ok 9 /unicode/cntrl
ok 10 /unicode/combining-class
# Composing U+000041 and U+000042; expecting U+000000
# Composing U+000041 and U+000000; expecting U+000000
# Composing U+000066 and U+000069; expecting U+000000
# Composing U+000308 and U+000301; expecting U+000000
# Composing U+000f71 and U+000f72; expecting U+000000
# Composing U+00212b and U+000000; expecting U+000000
# Composing U+0000c5 and U+000000; expecting U+000000
# Composing U+002126 and U+000000; expecting U+000000
# Composing U+0003a9 and U+000000; expecting U+000000
# Composing U+000041 and U+00030a; expecting U+0000c5
# Composing U+00006f and U+000302; expecting U+0000f4
# Composing U+001e63 and U+000307; expecting U+001e69
# Composing U+000073 and U+000323; expecting U+001e63
# Composing U+000064 and U+000307; expecting U+001e0b
# Composing U+000064 and U+000323; expecting U+001e0d
# Composing U+00d4cc and U+0011b6; expecting U+00d4db
# Composing U+001111 and U+001171; expecting U+00d4cc
# Composing U+00ce20 and U+0011b8; expecting U+00ce31
# Composing U+00110e and U+001173; expecting U+00ce20
# Composing U+001100 and U+001160; expecting U+000000
# Composing U+001100 and U+001177; expecting U+000000
# Composing U+00abff and U+0011b6; expecting U+000000
# Composing U+00d7a5 and U+0011b6; expecting U+000000
# Composing U+00ac01 and U+0011b6; expecting U+000000
# Composing U+00d4cc and U+0011a6; expecting U+000000
# Composing U+00d4cc and U+0011c4; expecting U+000000
# Composing U+01611e and U+01611e; expecting U+016121
# Composing U+01611e and U+01611f; expecting U+016123
# Composing U+0000f6 and U+000304; expecting U+00022b
# Composing U+000b47 and U+000b57; expecting U+000b4c
# Composing U+0000a0 and U+000b57; expecting U+000000
# Composing U+016e00 and U+00030a; expecting U+000000
# Composing U+00212b and U+016e00; expecting U+000000
# Composing U+001e63 and U+000306; expecting U+000000
# Composing U+001e63 and U+000304; expecting U+000000
# Composing U+001e63 and U+000b57; expecting U+000000
# Composing U+001e63 and U+000000; expecting U+000000
# Composing U+001e63 and U+0113c2; expecting U+000000
# Composing U+001f01 and U+0113c2; expecting U+000000
# Composing U+00006e and U+000302; expecting U+000000
# Composing U+001e63 and U+01611f; expecting U+000000
# Composing U+01138e and U+0113b8; expecting U+000000
# Composing U+01611e and U+000000; expecting U+000000
# Composing U+000000 and U+01611f; expecting U+000000
# Composing U+011390 and U+0113c2; expecting U+000000
ok 11 /unicode/compose
ok 12 /unicode/decompose
ok 13 /unicode/decompose-tail
ok 14 /unicode/defined
ok 15 /unicode/digit
ok 16 /unicode/digit-value
# Fully decomposing U+000041; expecting 1 codepoints
# Fully decomposing U+00fb01; expecting 1 codepoints
# Fully decomposing U+00212b; expecting 2 codepoints
# Fully decomposing U+002126; expecting 1 codepoints
# Fully decomposing U+000344; expecting 2 codepoints
# Fully decomposing U+000f73; expecting 2 codepoints
# Fully decomposing U+0000c5; expecting 2 codepoints
# Fully decomposing U+0000f4; expecting 2 codepoints
# Fully decomposing U+001e69; expecting 3 codepoints
# Fully decomposing U+001e63; expecting 2 codepoints
# Fully decomposing U+001e0b; expecting 2 codepoints
# Fully decomposing U+001e0d; expecting 2 codepoints
# Fully decomposing U+00d4db; expecting 3 codepoints
# Fully decomposing U+00d4cc; expecting 2 codepoints
# Fully decomposing U+00ce31; expecting 3 codepoints
# Fully decomposing U+00ce20; expecting 2 codepoints
ok 17 /unicode/fully-decompose-canonical
ok 18 /unicode/fully-decompose-len
ok 19 /unicode/normalization
ok 20 /unicode/graph
# Testing script Zyyy (code 1517910393)
# Testing script Zinh (code 1516858984)
# Testing script Zmth (code 1517122664)
# Testing script Arab (code 1098015074)
# Testing script Armn (code 1098018158)
# Testing script Beng (code 1113943655)
# Testing script Bopo (code 1114599535)
# Testing script Cher (code 1130915186)
# Testing script Copt (code 1131376756)
# Testing script Cyrl (code 1132032620)
# Testing script Dsrt (code 1148416628)
# Testing script Deva (code 1147500129)
# Testing script Ethi (code 1165256809)
# Testing script Geor (code 1197830002)
# Testing script Goth (code 1198486632)
# Testing script Grek (code 1198679403)
# Testing script Gujr (code 1198877298)
# Testing script Guru (code 1198879349)
# Testing script Hani (code 1214344809)
# Testing script Hang (code 1214344807)
# Testing script Hebr (code 1214603890)
# Testing script Hira (code 1214870113)
# Testing script Knda (code 1265525857)
# Testing script Kana (code 1264676449)
# Testing script Khmr (code 1265134962)
# Testing script Laoo (code 1281453935)
# Testing script Latn (code 1281455214)
# Testing script Mlym (code 1298954605)
# Testing script Mong (code 1299148391)
# Testing script Mymr (code 1299803506)
# Testing script Ogam (code 1332175213)
# Testing script Ital (code 1232363884)
# Testing script Orya (code 1332902241)
# Testing script Runr (code 1383427698)
# Testing script Sinh (code 1399418472)
# Testing script Syrc (code 1400468067)
# Testing script Taml (code 1415671148)
# Testing script Telu (code 1415933045)
# Testing script Thaa (code 1416126817)
# Testing script Thai (code 1416126825)
# Testing script Tibt (code 1416192628)
# Testing script Cans (code 1130458739)
# Testing script Yiii (code 1500080489)
# Testing script Tglg (code 1416064103)
# Testing script Hano (code 1214344815)
# Testing script Buhd (code 1114990692)
# Testing script Tagb (code 1415669602)
# Testing script Brai (code 1114792297)
# Testing script Cprt (code 1131442804)
# Testing script Limb (code 1281977698)
# Testing script Osma (code 1332964705)
# Testing script Shaw (code 1399349623)
# Testing script Linb (code 1281977954)
# Testing script Tale (code 1415670885)
# Testing script Ugar (code 1432838514)
# Testing script Talu (code 1415670901)
# Testing script Bugi (code 1114990441)
# Testing script Glag (code 1198285159)
# Testing script Tfng (code 1415999079)
# Testing script Sylo (code 1400466543)
# Testing script Xpeo (code 1483761007)
# Testing script Khar (code 1265131890)
# Testing script Zzzz (code 1517976186)
# Testing script Bali (code 1113681001)
# Testing script Xsux (code 1483961720)
# Testing script Phnx (code 1349021304)
# Testing script Phag (code 1349017959)
# Testing script Nkoo (code 1315663727)
# Testing script Kali (code 1264675945)
# Testing script Lepc (code 1281716323)
# Testing script Rjng (code 1382706791)
# Testing script Sund (code 1400204900)
# Testing script Saur (code 1398895986)
# Testing script Cham (code 1130914157)
# Testing script Olck (code 1332503403)
# Testing script Vaii (code 1449224553)
# Testing script Cari (code 1130459753)
# Testing script Lyci (code 1283023721)
# Testing script Lydi (code 1283023977)
# Testing script Avst (code 1098281844)
# Testing script Bamu (code 1113681269)
# Testing script Egyp (code 1164409200)
# Testing script Armi (code 1098018153)
# Testing script Phli (code 1349020777)
# Testing script Prti (code 1349678185)
# Testing script Java (code 1247901281)
# Testing script Kthi (code 1265920105)
# Testing script Lisu (code 1281979253)
# Testing script Mtei (code 1299473769)
# Testing script Sarb (code 1398895202)
# Testing script Orkh (code 1332898664)
# Testing script Samr (code 1398893938)
# Testing script Lana (code 1281453665)
# Testing script Tavt (code 1415673460)
# Testing script Batk (code 1113683051)
# Testing script Brah (code 1114792296)
# Testing script Mand (code 1298230884)
# Testing script Cakm (code 1130457965)
# Testing script Merc (code 1298494051)
# Testing script Mero (code 1298494063)
# Testing script Plrd (code 1349284452)
# Testing script Shrd (code 1399353956)
# Testing script Sora (code 1399812705)
# Testing script Takr (code 1415670642)
# Testing script Bass (code 1113682803)
# Testing script Aghb (code 1097295970)
# Testing script Dupl (code 1148547180)
# Testing script Elba (code 1164730977)
# Testing script Gran (code 1198678382)
# Testing script Khoj (code 1265135466)
# Testing script Sind (code 1399418468)
# Testing script Lina (code 1281977953)
# Testing script Mahj (code 1298229354)
# Testing script Mani (code 1298230889)
# Testing script Mend (code 1298493028)
# Testing script Modi (code 1299145833)
# Testing script Mroo (code 1299345263)
# Testing script Nbat (code 1315070324)
# Testing script Narb (code 1315009122)
# Testing script Perm (code 1348825709)
# Testing script Hmng (code 1215131239)
# Testing script Palm (code 1348562029)
# Testing script Pauc (code 1348564323)
# Testing script Phlp (code 1349020784)
# Testing script Sidd (code 1399415908)
# Testing script Tirh (code 1416196712)
# Testing script Wara (code 1466004065)
# Testing script Ahom (code 1097363309)
# Testing script Hluw (code 1215067511)
# Testing script Hatr (code 1214346354)
# Testing script Mult (code 1299541108)
# Testing script Hung (code 1215655527)
# Testing script Sgnw (code 1399287415)
# Testing script Adlm (code 1097100397)
# Testing script Bhks (code 1114139507)
# Testing script Marc (code 1298231907)
# Testing script Newa (code 1315272545)
# Testing script Osge (code 1332963173)
# Testing script Tang (code 1415671399)
# Testing script Gonm (code 1198485101)
# Testing script Nshu (code 1316186229)
# Testing script Soyo (code 1399814511)
# Testing script Zanb (code 1516334690)
# Testing script Dogr (code 1148151666)
# Testing script Gong (code 1198485095)
# Testing script Rohg (code 1383032935)
# Testing script Maka (code 1298230113)
# Testing script Medf (code 1298490470)
# Testing script Sogo (code 1399809903)
# Testing script Sogd (code 1399809892)
# Testing script Elym (code 1164736877)
# Testing script Nand (code 1315008100)
# Testing script Hmnp (code 1215131248)
# Testing script Wcho (code 1466132591)
# Testing script Chrs (code 1130918515)
# Testing script Diak (code 1147756907)
# Testing script Kits (code 1265202291)
# Testing script Yezi (code 1499822697)
# Testing script Cpmn (code 1131441518)
# Testing script Ougr (code 1333094258)
# Testing script Tnsa (code 1416524641)
# Testing script Toto (code 1416590447)
# Testing script Vith (code 1449751656)
# Testing script Kawi (code 1264678761)
# Testing script Nagm (code 1315006317)
# Testing script Todr (code 1416586354)
# Testing script Gara (code 1197568609)
# Testing script Tutg (code 1416983655)
# Testing script Sunu (code 1400204917)
# Testing script Gukh (code 1198877544)
# Testing script Krai (code 1265787241)
# Testing script Onao (code 1332633967)
ok 21 /unicode/iso15924
ok 22 /unicode/lower
ok 23 /unicode/mark
ok 24 /unicode/mirror
ok 25 /unicode/print
ok 26 /unicode/punctuation
ok 27 /unicode/script
ok 28 /unicode/space
ok 29 /unicode/strdown
ok 30 /unicode/strup
ok 31 /unicode/turkish-strupdown
ok 32 /unicode/title
ok 33 /unicode/upper
ok 34 /unicode/validate
ok 35 /unicode/wide
ok 36 /unicode/xdigit
ok 37 /unicode/xdigit-value
ok 38 /unicode/zero-width
ok 39 /unicode/normalize
# End of unicode tests
PASS: glib/unicode.test
Running test: glib/portal-support-flatpak-gsettings-only.test
TAP version 14
# random seed: R02Sb7eb905422525c150c92d34ca8a2d1f4
1..1
# Start of portal-support tests
# Start of flatpak tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/system-config1:/var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/system-data1:/var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/runtime
# Creating .flatpak-info in /var/volatile/tmp/portal-support/flatpak/gsettings/.dirs/runtime/.flatpak-info
ok 1 /portal-support/flatpak/gsettings
# End of flatpak tests
# End of portal-support tests
PASS: glib/portal-support-flatpak-gsettings-only.test
Running test: glib/memory-monitor-dbus.test
TAP version 13
ok 1 __main__.TestLowMemoryMonitor.test_low_memory_warning_signal
# Received memory warning signal, level 0
# Received memory warning signal, level 100
# Received memory warning signal, level 255
1..1
PASS: glib/memory-monitor-dbus.test
Running test: glib/gdbus-addresses.test
TAP version 14
# random seed: R02Sd546bbc2dedca07a3ebd1bc7add48892
1..9
# Start of gdbus tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/empty-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/empty-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/empty-address/.dirs/system-config1:/var/volatile/tmp/gdbus/empty-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/empty-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/empty-address/.dirs/system-data1:/var/volatile/tmp/gdbus/empty-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/empty-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/empty-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/empty-address/.dirs/runtime
ok 1 /gdbus/empty-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/unsupported-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/unsupported-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/unsupported-address/.dirs/system-config1:/var/volatile/tmp/gdbus/unsupported-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/unsupported-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/unsupported-address/.dirs/system-data1:/var/volatile/tmp/gdbus/unsupported-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/unsupported-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/unsupported-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/unsupported-address/.dirs/runtime
ok 2 /gdbus/unsupported-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/address-parsing/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/address-parsing/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/address-parsing/.dirs/system-config1:/var/volatile/tmp/gdbus/address-parsing/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/address-parsing/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/address-parsing/.dirs/system-data1:/var/volatile/tmp/gdbus/address-parsing/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/address-parsing/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/address-parsing/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/address-parsing/.dirs/runtime
ok 3 /gdbus/address-parsing
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/unix-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/unix-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/unix-address/.dirs/system-config1:/var/volatile/tmp/gdbus/unix-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/unix-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/unix-address/.dirs/system-data1:/var/volatile/tmp/gdbus/unix-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/unix-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/unix-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/unix-address/.dirs/runtime
ok 4 /gdbus/unix-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/system-config1:/var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/system-data1:/var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/nonce-tcp-address/.dirs/runtime
ok 5 /gdbus/nonce-tcp-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/tcp-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/tcp-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/tcp-address/.dirs/system-config1:/var/volatile/tmp/gdbus/tcp-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/tcp-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/tcp-address/.dirs/system-data1:/var/volatile/tmp/gdbus/tcp-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/tcp-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/tcp-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/tcp-address/.dirs/runtime
ok 6 /gdbus/tcp-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/system-config1:/var/volatile/tmp/gdbus/autolaunch-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/system-data1:/var/volatile/tmp/gdbus/autolaunch-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/autolaunch-address/.dirs/runtime
ok 7 /gdbus/autolaunch-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/mixed-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/mixed-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/mixed-address/.dirs/system-config1:/var/volatile/tmp/gdbus/mixed-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/mixed-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/mixed-address/.dirs/system-data1:/var/volatile/tmp/gdbus/mixed-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/mixed-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/mixed-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/mixed-address/.dirs/runtime
ok 8 /gdbus/mixed-address
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/escape-address/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/escape-address/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/escape-address/.dirs/system-config1:/var/volatile/tmp/gdbus/escape-address/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/escape-address/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/escape-address/.dirs/system-data1:/var/volatile/tmp/gdbus/escape-address/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/escape-address/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/escape-address/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/escape-address/.dirs/runtime
ok 9 /gdbus/escape-address
# End of gdbus tests
PASS: glib/gdbus-addresses.test
Running test: glib/performance.test
Executing: glib/performance.test
simple-construction: Millions of constructed objects per second: 43.881
Executing: glib/performance.test
simple-construction1: Millions of constructed objects per second: 161.544
complex-construction: Millions of constructed objects per second: 13.612
Executing: glib/performance.test
complex-construction1: Millions of constructed objects per second: 25.447
Executing: glib/performance.test
complex-construction2: Millions of constructed objects per second: 29.459
finalization: Millions of finalized objects per second: 8.150
Executing: glib/performance.test
type-check: Million type checks per second: 187.44
emit-unhandled: Emissions per second: 11041489
emit-unhandled-empty: Emissions per second: 69862289
emit-unhandled-generic: Emissions per second: 14763680
Executing: glib/performance.test
emit-unhandled-generic-empty: Emissions per second: 71193101
emit-unhandled-args: Emissions per second: 8871501
emit-handled: Emissions per second: 6649774
emit-handled-empty: Emissions per second: 6739065
emit-handled-generic: Emissions per second: 6631196
Executing: glib/performance.test
emit-handled-generic-empty: Emissions per second: 12662775
emit-handled-args: Emissions per second: 5763933
notify-unhandled: Notify (unhandled) per second: 58036868
notify-by-pspec-unhandled: Notify (unhandled) per second: 145125985
Executing: glib/performance.test
notify-handled: Notify per second: 4127820
notify-by-pspec-handled: Notify per second: 4454992
property-set: Property set per second: 32515367
property-set-signaled: Property set per second: 6971058
Executing: glib/performance.test
property-get: Property get per second: 31972730
refcount: Million refs+unref per second: 78.28
refcount-1: Million refs+unref per second: 214.42
refcount-toggle: Million refs+unref per second: 113.73
PASS: glib/performance.test
Running test: glib/power-profile-monitor.test
TAP version 14
# random seed: R02S71e8753312ae5d50a056c6233fdfaf06
1..1
# Start of power-profile-monitor tests
# GLib-GIO-DEBUG: Failed to initialize portal (GPowerProfileMonitorPortal) for gio-power-profile-monitor: Not using portals
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dbus (GPowerProfileMonitorDBus) for ?gio-power-profile-monitor?
ok 1 /power-profile-monitor/default
# End of power-profile-monitor tests
PASS: glib/power-profile-monitor.test
Running test: glib/macros.test
TAP version 14
# random seed: R02Sfabd26d4d9c2705bbda1bfeef1655c02
1..3
# Start of alignof tests
ok 1 /alignof/fallback
# End of alignof tests
# Start of assert tests
ok 2 /assert/static
# End of assert tests
# Start of struct tests
ok 3 /struct/sizeof_member
# End of struct tests
PASS: glib/macros.test
Running test: glib/search-utils.test
TAP version 14
# random seed: R02Sa92d64135d653b84eba15a90ba689a17
# GLib-DEBUG: Current user locale: C
1..6
# Start of search tests
# GLib-DEBUG: Started
# GLib-DEBUG: 'he' - 'Hello World' should match: OK
# GLib-DEBUG: 'wo' - 'Hello World' should match: OK
# GLib-DEBUG: 'lo' - 'Hello World' should NOT match: OK
# GLib-DEBUG: 'ld' - 'Hello World' should NOT match: OK
# GLib-DEBUG: 'wo' - 'Hello-World' should match: OK
# GLib-DEBUG: 'wo' - 'HelloWorld' should NOT match: OK
ok 1 /search/basic
# GLib-DEBUG: Started
# Locale 'sv_SE.UTF-8' is unavailable
# GLib-DEBUG: 'jor' - 'J?rgen' should match: SKIPPED
# GLib-DEBUG: 'gaetan' - 'Gaëtan' should match: OK
# GLib-DEBUG: 'ele' - 'élève' should match: OK
# GLib-DEBUG: 'AzaÏs' - 'Azais' should NOT match: OK
# GLib-DEBUG: 'Azais' - 'AzaÏs' should match: OK
ok 2 /search/composed
# GLib-DEBUG: Started
# Locale 'sv_SE.UTF-8' is unavailable
# GLib-DEBUG: 'Jör' - 'Jorgen' should NOT match: SKIPPED
# Locale 'sv_SE.UTF-8' is unavailable
# GLib-DEBUG: 'jor' - 'Jörgen' should match: SKIPPED
ok 3 /search/decomposed # SKIP No locales for the test set are available
# GLib-DEBUG: Started
# GLib-DEBUG: 'ist' - 'İstanbul' should match: OK
# GLib-DEBUG: 'diyarbakir' - 'Diyarbakır' should match: OK
ok 4 /search/turkish
# GLib-DEBUG: Started
# GLib-DEBUG: 'jor' - 'J?rgen' should match: OK
# GLib-DEBUG: 'Jo?r' - 'Jorgen' should NOT match: OK
# GLib-DEBUG: 'jor' - 'Jo?rgen' should match: OK
ok 5 /search/c_locale_unicode
# GLib-DEBUG: Started
# GLib-DEBUG: 'Xav Cla' - 'Xavier Claessens' should match: OK
# GLib-DEBUG: 'Cla Xav' - 'Xavier Claessens' should match: OK
# GLib-DEBUG: '   b  ' - 'Foo Bar Baz' should match: OK
# GLib-DEBUG: 'bar bazz' - 'Foo Bar Baz' should NOT match: OK
ok 6 /search/multi_words
# End of search tests
PASS: glib/search-utils.test
Running test: glib/mem-overflow.test
TAP version 14
# random seed: R02S1ac8a99646f589eaf8e5fcdfaa6843cf
1..2
# Start of mem tests
ok 1 /mem/overflow
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=615379
ok 2 /mem/empty-alloc
# Start of overflow tests
# Start of subprocess tests
# End of subprocess tests
# End of overflow tests
# Start of empty-alloc tests
# End of empty-alloc tests
# End of mem tests
PASS: glib/mem-overflow.test
Running test: glib/mapping.test
TAP version 14
# random seed: R02Sd8a254e8a9834df8d657d3e12e525179
1..3
# Start of mapping tests
# test_mapping: ok
ok 1 /mapping/flags
ok 2 /mapping/private
# test_child_private: child spawned
# Subtest: /usr/libexec/installed-tests/glib/mapping
    # random seed: R02S1384086c5aebc75cafd4d8569920994b
# test_child_private: received first child signal
    # test_child_private: received parent signal
# Child exited with status 0
# test_child_private: received second child signal
ok 3 /mapping/private-child
# End of mapping tests
PASS: glib/mapping.test
Running test: glib/cxx.test
TAP version 14
# random seed: R02Sa827478bbfa5e29573b0cbb436bd6637
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx.test
Running test: glib/inet-address.test
TAP version 14
# random seed: R02S1107d88eedafd9d0a516b03b062549cb
1..11
# Start of inet-address tests
ok 1 /inet-address/parse
ok 2 /inet-address/any
ok 3 /inet-address/loopback
ok 4 /inet-address/bytes
ok 5 /inet-address/property
# End of inet-address tests
# Start of socket-address tests
ok 6 /socket-address/basic
ok 7 /socket-address/to-string
# End of socket-address tests
# Start of address-mask tests
ok 8 /address-mask/parse
ok 9 /address-mask/property
ok 10 /address-mask/equal
ok 11 /address-mask/match
# End of address-mask tests
PASS: glib/inet-address.test
Running test: glib/autoptr-gio.test
TAP version 14
# random seed: R02S238f3472d375200cd0193646addcddf5
1..1
# Start of autoptr tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /autoptr/autoptr
# End of autoptr tests
PASS: glib/autoptr-gio.test
Running test: glib/defaultiface.test
TAP version 14
# random seed: R02S39bb031adb980dcd892317da366108e0
1..2
# Start of gobject tests
ok 1 /gobject/static-iface
ok 2 /gobject/dynamic-iface
# End of gobject tests
PASS: glib/defaultiface.test
Running test: glib/cache.test
TAP version 14
# random seed: R02Sf4093dac9714a8c4638c78d56a9fe638
1..1
# Start of cache tests
ok 1 /cache/basic
# End of cache tests
PASS: glib/cache.test
Running test: glib/application-command-line.test
TAP version 14
# random seed: R02S892c74eda3619663daeee87d74799a8e
1..1
# Start of application-command-line tests
ok 1 /application-command-line/basic-properties
# End of application-command-line tests
PASS: glib/application-command-line.test
Running test: glib/buffered-input-stream.test
TAP version 14
# random seed: R02S38dcd53ab0862edd712321095ad87ed7
1..10
# Start of buffered-input-stream tests
ok 1 /buffered-input-stream/peek
ok 2 /buffered-input-stream/peek-buffer
ok 3 /buffered-input-stream/set-buffer-size
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=562393
ok 4 /buffered-input-stream/read-byte
ok 5 /buffered-input-stream/read
ok 6 /buffered-input-stream/read-async
ok 7 /buffered-input-stream/skip
ok 8 /buffered-input-stream/skip-async
ok 9 /buffered-input-stream/seek
# End of buffered-input-stream tests
# Start of filter-input-stream tests
ok 10 /filter-input-stream/close
# End of filter-input-stream tests
PASS: glib/buffered-input-stream.test
Running test: glib/portal-support-flatpak-none.test
TAP version 14
# random seed: R02Sf2045aac2e33e2bb2acd3303b4949f3c
1..1
# Start of portal-support tests
# Start of flatpak tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/flatpak/none/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/flatpak/none/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/flatpak/none/.dirs/system-config1:/var/volatile/tmp/portal-support/flatpak/none/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/flatpak/none/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/flatpak/none/.dirs/system-data1:/var/volatile/tmp/portal-support/flatpak/none/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/flatpak/none/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/flatpak/none/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/flatpak/none/.dirs/runtime
# Creating .flatpak-info in /var/volatile/tmp/portal-support/flatpak/none/.dirs/runtime/.flatpak-info
ok 1 /portal-support/flatpak/none
# End of flatpak tests
# End of portal-support tests
PASS: glib/portal-support-flatpak-none.test
Running test: glib/portal-support-flatpak-network-only.test
TAP version 14
# random seed: R02Sae0db6d4528711c63475481d483a1502
1..1
# Start of portal-support tests
# Start of flatpak tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/flatpak/network/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/flatpak/network/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/flatpak/network/.dirs/system-config1:/var/volatile/tmp/portal-support/flatpak/network/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/flatpak/network/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/flatpak/network/.dirs/system-data1:/var/volatile/tmp/portal-support/flatpak/network/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/flatpak/network/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/flatpak/network/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/flatpak/network/.dirs/runtime
# Creating .flatpak-info in /var/volatile/tmp/portal-support/flatpak/network/.dirs/runtime/.flatpak-info
ok 1 /portal-support/flatpak/network
# End of flatpak tests
# End of portal-support tests
PASS: glib/portal-support-flatpak-network-only.test
Running test: glib/properties-refcount2.test
TAP version 14
# random seed: R02Sc55ae1bb9a96be5c5e285365689b077c
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x55cb8cb73450
# 
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# dispose 0x55cb8cb73450!
# 
ok 1 /gobject/refcount/properties-2
# End of refcount tests
# End of gobject tests
PASS: glib/properties-refcount2.test
Running test: glib/type-flags.test
TAP version 14
# random seed: R02S6ca25da46ae7e9bfd4ab6e88e1090634
1..4
# Start of type tests
# Start of flags tests
ok 1 /type/flags/interface
ok 2 /type/flags/final
# /type/flags/deprecated summary: Test that trying to instantiate a deprecated type results in a warning.
ok 3 /type/flags/deprecated
# Start of final tests
ok 4 /type/flags/final/instance-check
# End of final tests
# End of flags tests
# End of type tests
PASS: glib/type-flags.test
Running test: glib/notify-init.test
TAP version 14
# random seed: R02Sdf89a1b81aa4bc9ff1593cd3ac1e4d4b
1..1
# Start of properties tests
# /properties/notify-in-init summary: Test that emitting notify with a handler already connected in test_object_init() works
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2665
ok 1 /properties/notify-in-init
# End of properties tests
PASS: glib/notify-init.test
Running test: glib/cancellable.test
TAP version 14
# random seed: R02Sdaf939a5ed6b51a3716d3a2a96c83034
1..11
# Start of cancellable tests
ok 1 /cancellable/multiple-concurrent # SKIP Not running timing heavy test
ok 2 /cancellable/null
# /cancellable/disconnect-on-cancelled-callback-hangs summary: Tests that trying to disconnect a cancellable from the cancelled signal callback will result in a deadlock as per #GCancellable::cancelled
ok 3 /cancellable/disconnect-on-cancelled-callback-hangs
# /cancellable/resets-on-cancel-callback-hangs summary: Tests that trying to reset a cancellable from the cancelled signal callback will result in a deadlock as per #GCancellable::cancelled
ok 4 /cancellable/resets-on-cancel-callback-hangs
ok 5 /cancellable/poll-fd
# /cancellable/poll-fd-cancelled summary: Tests that cancellation wakes up a pollable FD on creation
ok 6 /cancellable/poll-fd-cancelled
# /cancellable/poll-fd-cancelled-threaded summary: Tests that a cancellation wakes up a pollable FD
ok 7 /cancellable/poll-fd-cancelled-threaded
# /cancellable/cancel-reset-races summary: Tests threads racing for cancelling and resetting a GCancellable
ok 8 /cancellable/cancel-reset-races
# /cancellable/cancel-reset-connect-races summary: Tests threads racing for cancelling, connecting and disconnecting  and resetting a GCancellable
ok 9 /cancellable/cancel-reset-connect-races
# End of cancellable tests
# Start of cancellable-source tests
# /cancellable-source/threaded-dispose summary: Test a thread race between disposing of a GCancellableSource (in one thread) and cancelling the GCancellable it refers to (in another thread)
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1841
ok 10 /cancellable-source/threaded-dispose
# /cancellable-source/can-be-fired-multiple-times summary: Test a cancellable source callback can be called multiple times
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/774
ok 11 /cancellable-source/can-be-fired-multiple-times
# End of cancellable-source tests
PASS: glib/cancellable.test
Running test: glib/gobject-query.py.test
TAP version 13
ok 1 __main__.TestGobjectQuery.test_froots
# gobject-query: /usr/bin/gobject-query
# tmpdir: /tmp/tmp3m3xuitf
# Running: ['/usr/bin/gobject-query', 'froots']
# Return code: 0
# Output:
#  ├void
# ├GInterface
# │ └GTypePlugin
# ├gchar
# ├guchar
# ├gboolean
# ├gint
# ├guint
# ├glong
# ├gulong
# ├gint64
# ├guint64
# ├GEnum
# ├GFlags
# ├gfloat
# ├gdouble
# ├gchararray
# ├gpointer
# │ └GType
# ├GBoxed
# │ └GValueArray
# ├GParam
# │ ├GParamChar
# │ ├GParamUChar
# │ ├GParamBoolean
# │ ├GParamInt
# │ ├GParamUInt
# │ ├GParamLong
# │ ├GParamULong
# │ ├GParamInt64
# │ ├GParamUInt64
# │ ├GParamUnichar
# │ ├GParamEnum
# │ ├GParamFlags
# │ ├GParamFloat
# │ ├GParamDouble
# │ ├GParamString
# │ ├GParamParam
# │ ├GParamBoxed
# │ ├GParamPointer
# │ ├GParamValueArray
# │ ├GParamObject
# │ ├GParamOverride
# │ ├GParamGType
# │ └GParamVariant
# ├GObject
# └GVariant
# Error:
ok 2 __main__.TestGobjectQuery.test_help
# gobject-query: /usr/bin/gobject-query
# tmpdir: /tmp/tmpxe9ypn8r
# Running: ['/usr/bin/gobject-query', '--help']
# Return code: 0
# Output:
#  usage: gobject-query <qualifier> [-r <type>] [-{i|b} ""] [-s #] [-{h|x|y}]
#        -r       specify root type
#        -n       don't descend type tree
#        -h       show help
#        -b       specify indent string
#        -i       specify incremental indent string
#        -s       specify line spacing
# qualifiers:
#        froots   iterate over fundamental roots
#        tree     print type tree
# Error:
ok 3 __main__.TestGobjectQuery.test_tree
# gobject-query: /usr/bin/gobject-query
# tmpdir: /tmp/tmpwfx3d1bf
# Running: ['/usr/bin/gobject-query', 'tree']
# Return code: 0
# Output:
#  GObject
# Error:
ok 4 __main__.TestGobjectQuery.test_version
# gobject-query: /usr/bin/gobject-query
# tmpdir: /tmp/tmpur5mkibj
# Running: ['/usr/bin/gobject-query', '--version']
# Return code: 0
# Output:
#  2.84.0
# Error:
1..4
PASS: glib/gobject-query.py.test
Running test: glib/fileattributematcher.test
TAP version 14
# random seed: R02S1d447842e5f28dc79a7325479d9a7737
1..3
# Start of fileattributematcher tests
ok 1 /fileattributematcher/exact
ok 2 /fileattributematcher/equality
ok 3 /fileattributematcher/subtract
# End of fileattributematcher tests
PASS: glib/fileattributematcher.test
Running test: glib/memory-monitor.test
TAP version 14
# random seed: R02Sbdaf7aba9342ceb0979968910db4e9bf
1..1
# Start of memory-monitor tests
# GLib-GIO-DEBUG: Failed to initialize portal (GMemoryMonitorPortal) for gio-memory-monitor: Not using portals
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dbus (GMemoryMonitorDBus) for ?gio-memory-monitor?
ok 1 /memory-monitor/default
# End of memory-monitor tests
PASS: glib/memory-monitor.test
Running test: glib/union-info.test
TAP version 14
# random seed: R02Sbc36fab4b2cb9d4499a93439a0561ba8
1..2
# Start of union-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/union-info/basic/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/union-info/basic/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/union-info/basic/.dirs/system-config1:/var/volatile/tmp/union-info/basic/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/union-info/basic/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/union-info/basic/.dirs/system-data1:/var/volatile/tmp/union-info/basic/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/union-info/basic/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/union-info/basic/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/union-info/basic/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /union-info/basic summary: Test basic properties of GIUnionInfo
ok 1 /union-info/basic
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/union-info/methods/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/union-info/methods/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/union-info/methods/.dirs/system-config1:/var/volatile/tmp/union-info/methods/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/union-info/methods/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/union-info/methods/.dirs/system-data1:/var/volatile/tmp/union-info/methods/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/union-info/methods/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/union-info/methods/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/union-info/methods/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /union-info/methods summary: Test retrieving methods from GIUnionInfo
ok 2 /union-info/methods
# End of union-info tests
PASS: glib/union-info.test
Running test: glib/properties-introspection.test
TAP version 14
# random seed: R02S522bebef07ab30a4cbc79ccbe7b045fc
1..2
# Start of properties tests
# /properties/introspection summary: Verify that introspecting properties on an interface initializes the GParamSpecPool.
ok 1 /properties/introspection
# /properties/collision summary: Verify that multiple threads create a single GParamSpecPool.
ok 2 /properties/collision
# End of properties tests
PASS: glib/properties-introspection.test
Running test: glib/dataset.test
TAP version 14
# random seed: R02S9af12c128edbc1d5d748d0e89847d01d
1..14
# Start of quark tests
ok 1 /quark/basic
ok 2 /quark/string
# End of quark tests
# Start of dataset tests
ok 3 /dataset/basic
ok 4 /dataset/id
ok 5 /dataset/full
ok 6 /dataset/foreach
ok 7 /dataset/destroy
# End of dataset tests
# Start of datalist tests
ok 8 /datalist/basic
ok 9 /datalist/id
ok 10 /datalist/recursive-clear
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2672
ok 11 /datalist/id-remove-multiple
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2672
ok 12 /datalist/id-remove-multiple-destroy-order
ok 13 /datalist/update-atomic
# Start of id-remove-multiple tests
ok 14 /datalist/id-remove-multiple/resize
# End of id-remove-multiple tests
# End of datalist tests
PASS: glib/dataset.test
Running test: glib/hash.test
TAP version 14
# random seed: R02S4da5704b60948c29f403c3ca4dc0f0d2
1..34
# Start of hash tests
ok 1 /hash/misc
ok 2 /hash/one
ok 3 /hash/honeyman
ok 4 /hash/direct
ok 5 /hash/direct2
ok 6 /hash/int
ok 7 /hash/int64
ok 8 /hash/double
ok 9 /hash/string
ok 10 /hash/set
ok 11 /hash/set-ref
ok 12 /hash/ref
ok 13 /hash/remove-all
ok 14 /hash/recursive-remove-all
ok 15 /hash/find
ok 16 /hash/foreach
ok 17 /hash/foreach-steal
ok 18 /hash/steal-extended
ok 19 /hash/steal-all-keys
ok 20 /hash/steal-all-values
ok 21 /hash/lookup-extended
ok 22 /hash/new-similar
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=642944
ok 23 /hash/lookup-null-key
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=650459
ok 24 /hash/destroy-modify
ok 25 /hash/consistency
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=662544
ok 26 /hash/iter-replace
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=692815
ok 27 /hash/set-insert-corruption
ok 28 /hash/set-to-strv
ok 29 /hash/get-keys-as-ptr-array
ok 30 /hash/get-values-as-ptr-array
ok 31 /hash/primes
# Start of int64 tests
# /hash/int64/collisions summary: Check int64 Hash collisions caused by ignoring high word
ok 32 /hash/int64/collisions
# End of int64 tests
# Start of double tests
# /hash/double/collisions summary: Check double Hash collisions caused by int conversion and by numbers larger than 2^64-1 (G_MAXUINT64)
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2771
ok 33 /hash/double/collisions
# End of double tests
# Start of recursive-remove-all tests
# End of recursive-remove-all tests
# Start of steal-extended tests
ok 34 /hash/steal-extended/optional
# End of steal-extended tests
# End of hash tests
PASS: glib/hash.test
Running test: glib/hook.test
TAP version 14
# random seed: R02Sf6150ccb55190ba45f2ddcd12e3b5bff
1..2
# Start of hook tests
ok 1 /hook/basics
ok 2 /hook/corner-cases
# End of hook tests
PASS: glib/hook.test
Running test: glib/dynamictype.test
TAP version 14
# random seed: R02Sbe10de16feea89790a23f0f44d3bb3db
1..2
# Start of gobject tests
ok 1 /gobject/dynamic-type
# Start of dynamic-type tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/623
ok 2 /gobject/dynamic-type/query
# End of dynamic-type tests
# End of gobject tests
PASS: glib/dynamictype.test
Running test: glib/markup.test
TAP version 14
# random seed: R02S9dce315abaa9f84240a763d20dd0e2e2
1..1
# Start of markup tests
ok 1 /markup/stack
# End of markup tests
PASS: glib/markup.test
Running test: glib/testing.test
TAP version 14
# random seed: R02S8d3d5e84180388d5252bceb3c5322121
1..1
# Start of assert tests
ok 1 /assert/finalize_object
# Start of finalize_object tests
# Start of subprocess tests
# End of subprocess tests
# End of finalize_object tests
# End of assert tests
PASS: glib/testing.test
Running test: glib/signals-refcount3.test
TAP version 14
# random seed: R02S8c5c29d566eff09f4fcfea5b784cc1ff
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x56042b6673f0
# 
# init 0x56042b660600
# 
Executing: glib/signals-refcount3.test
# dispose 0x56042b6673f0!
# 
# dispose 0x56042b660600!
# 
ok 1 /gobject/refcount/signals
# slow test /gobject/refcount/signals executed in 5.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/signals-refcount3.test
Running test: glib/unix-mounts.test
TAP version 14
# random seed: R02Sf010b56223d60c01ed5a74b56903e016
1..4
# Start of unix-mounts tests
ok 1 /unix-mounts/is-system-fs-type
ok 2 /unix-mounts/is-system-device-path
# /unix-mounts/get-mount-points summary: Basic test of g_unix_mount_points_get_from_file()
# Icon: . GThemedIcon drive-removable-media drive-removable drive drive-removable-media-symbolic drive-removable-symbolic drive-symbolic
# Icon: . GThemedIcon drive-removable-media-symbolic drive-removable-symbolic drive-symbolic drive-removable-media drive-removable drive
# Icon: . GThemedIcon drive-removable-media drive-removable drive drive-removable-media-symbolic drive-removable-symbolic drive-symbolic
# Icon: . GThemedIcon drive-removable-media-symbolic drive-removable-symbolic drive-symbolic drive-removable-media drive-removable drive
# Icon: . GThemedIcon drive-removable-media drive-removable drive drive-removable-media-symbolic drive-removable-symbolic drive-symbolic
# Icon: . GThemedIcon drive-removable-media-symbolic drive-removable-symbolic drive-symbolic drive-removable-media drive-removable drive
# Icon: . GThemedIcon drive-removable-media drive-removable drive drive-removable-media-symbolic drive-removable-symbolic drive-symbolic
# Icon: . GThemedIcon drive-removable-media-symbolic drive-removable-symbolic drive-symbolic drive-removable-media drive-removable drive
ok 3 /unix-mounts/get-mount-points
# /unix-mounts/get-mount-entries summary: Basic test of g_unix_mounts_get_from_file()
ok 4 /unix-mounts/get-mount-entries
# End of unix-mounts tests
PASS: glib/unix-mounts.test
Running test: glib/references.test
TAP version 14
# random seed: R02S01d95fb76c43d12e6864ea6ffce25074
1..1
# Start of gobject tests
ok 1 /gobject/references
# End of gobject tests
PASS: glib/references.test
Running test: glib/bitlock.test
TAP version 14
# random seed: R02S48aa43e54d20ae1499b5dccbe2e32093
1..1
# Start of bitlock tests
# Start of performance tests
# max perf: iterations per second
ok 1 /bitlock/performance/uncontended
# End of performance tests
# End of bitlock tests
PASS: glib/bitlock.test
Running test: glib/fileutils.test
TAP version 14
# random seed: R02S52ece4a8a1504dd030eaaad3e8dd115b
1..27
# Start of fileutils tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/paths/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/paths/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/paths/.dirs/system-config1:/var/volatile/tmp/fileutils/paths/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/paths/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/paths/.dirs/system-data1:/var/volatile/tmp/fileutils/paths/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/paths/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/paths/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/paths/.dirs/runtime
ok 1 /fileutils/paths
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/build-path/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/build-path/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/build-path/.dirs/system-config1:/var/volatile/tmp/fileutils/build-path/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/build-path/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/build-path/.dirs/system-data1:/var/volatile/tmp/fileutils/build-path/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/build-path/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/build-path/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/build-path/.dirs/runtime
ok 2 /fileutils/build-path
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/build-pathv/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/build-pathv/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/build-pathv/.dirs/system-config1:/var/volatile/tmp/fileutils/build-pathv/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/build-pathv/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/build-pathv/.dirs/system-data1:/var/volatile/tmp/fileutils/build-pathv/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/build-pathv/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/build-pathv/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/build-pathv/.dirs/runtime
ok 3 /fileutils/build-pathv
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/build-filename/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/build-filename/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/build-filename/.dirs/system-config1:/var/volatile/tmp/fileutils/build-filename/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/build-filename/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/build-filename/.dirs/system-data1:/var/volatile/tmp/fileutils/build-filename/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/build-filename/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/build-filename/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/build-filename/.dirs/runtime
ok 4 /fileutils/build-filename
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/build-filenamev/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/build-filenamev/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/build-filenamev/.dirs/system-config1:/var/volatile/tmp/fileutils/build-filenamev/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/build-filenamev/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/build-filenamev/.dirs/system-data1:/var/volatile/tmp/fileutils/build-filenamev/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/build-filenamev/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/build-filenamev/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/build-filenamev/.dirs/runtime
ok 5 /fileutils/build-filenamev
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/system-config1:/var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/system-data1:/var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/mkdir-with-parents/.dirs/runtime
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 6 /fileutils/mkdir-with-parents
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/system-config1:/var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/system-data1:/var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/mkdir-with-parents-permission/.dirs/runtime
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 7 /fileutils/mkdir-with-parents-permission
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/system-config1:/var/volatile/tmp/fileutils/format-size-for-display/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/system-data1:/var/volatile/tmp/fileutils/format-size-for-display/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/format-size-for-display/.dirs/runtime
ok 8 /fileutils/format-size-for-display
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/errors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/errors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/errors/.dirs/system-config1:/var/volatile/tmp/fileutils/errors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/errors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/errors/.dirs/system-data1:/var/volatile/tmp/fileutils/errors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/errors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/errors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/errors/.dirs/runtime
ok 9 /fileutils/errors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/basename/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/basename/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/basename/.dirs/system-config1:/var/volatile/tmp/fileutils/basename/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/basename/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/basename/.dirs/system-data1:/var/volatile/tmp/fileutils/basename/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/basename/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/basename/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/basename/.dirs/runtime
ok 10 /fileutils/basename
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/get-basename/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/get-basename/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/get-basename/.dirs/system-config1:/var/volatile/tmp/fileutils/get-basename/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/get-basename/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/get-basename/.dirs/system-data1:/var/volatile/tmp/fileutils/get-basename/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/get-basename/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/get-basename/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/get-basename/.dirs/runtime
ok 11 /fileutils/get-basename
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/dirname/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/dirname/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/dirname/.dirs/system-config1:/var/volatile/tmp/fileutils/dirname/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/dirname/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/dirname/.dirs/system-data1:/var/volatile/tmp/fileutils/dirname/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/dirname/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/dirname/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/dirname/.dirs/runtime
ok 12 /fileutils/dirname
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/system-config1:/var/volatile/tmp/fileutils/dir-make-tmp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/system-data1:/var/volatile/tmp/fileutils/dir-make-tmp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/dir-make-tmp/.dirs/runtime
ok 13 /fileutils/dir-make-tmp
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/system-config1:/var/volatile/tmp/fileutils/file-open-tmp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/system-data1:/var/volatile/tmp/fileutils/file-open-tmp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/file-open-tmp/.dirs/runtime
ok 14 /fileutils/file-open-tmp
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/file-test/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/file-test/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/file-test/.dirs/system-config1:/var/volatile/tmp/fileutils/file-test/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/file-test/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/file-test/.dirs/system-data1:/var/volatile/tmp/fileutils/file-test/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/file-test/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/file-test/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/file-test/.dirs/runtime
ok 15 /fileutils/file-test
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/mkstemp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/mkstemp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/mkstemp/.dirs/system-config1:/var/volatile/tmp/fileutils/mkstemp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/mkstemp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/mkstemp/.dirs/system-data1:/var/volatile/tmp/fileutils/mkstemp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/mkstemp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/mkstemp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/mkstemp/.dirs/runtime
ok 16 /fileutils/mkstemp
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/mkdtemp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/mkdtemp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/mkdtemp/.dirs/system-config1:/var/volatile/tmp/fileutils/mkdtemp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/mkdtemp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/mkdtemp/.dirs/system-data1:/var/volatile/tmp/fileutils/mkdtemp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/mkdtemp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/mkdtemp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/mkdtemp/.dirs/runtime
ok 17 /fileutils/mkdtemp
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/get-contents/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/get-contents/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/get-contents/.dirs/system-config1:/var/volatile/tmp/fileutils/get-contents/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/get-contents/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/get-contents/.dirs/system-data1:/var/volatile/tmp/fileutils/get-contents/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/get-contents/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/get-contents/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/get-contents/.dirs/runtime
ok 18 /fileutils/get-contents
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/system-config1:/var/volatile/tmp/fileutils/get-contents-large-file/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/system-data1:/var/volatile/tmp/fileutils/get-contents-large-file/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/get-contents-large-file/.dirs/runtime
ok 19 /fileutils/get-contents-large-file # SKIP Skipping slow largefile test
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/set-contents/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/set-contents/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/set-contents/.dirs/system-config1:/var/volatile/tmp/fileutils/set-contents/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/set-contents/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/set-contents/.dirs/system-data1:/var/volatile/tmp/fileutils/set-contents/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/set-contents/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/set-contents/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/set-contents/.dirs/runtime
ok 20 /fileutils/set-contents
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/set-contents-full/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/set-contents-full/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/set-contents-full/.dirs/system-config1:/var/volatile/tmp/fileutils/set-contents-full/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/set-contents-full/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/set-contents-full/.dirs/system-data1:/var/volatile/tmp/fileutils/set-contents-full/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/set-contents-full/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/set-contents-full/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/set-contents-full/.dirs/runtime
# /fileutils/set-contents-full summary: Test g_file_set_contents_full() with various flags
# Flags 0 and test 0
# Flags 0 and test 1
# Flags 0 and test 2
# Flags 0 and test 3
# Flags 0 and test 4
# Flags 0 and test 5
# Flags 1 and test 0
# Flags 1 and test 1
# Flags 1 and test 2
# Flags 1 and test 3
# Flags 1 and test 4
# Flags 1 and test 5
# Flags 2 and test 0
# Flags 2 and test 1
# Flags 2 and test 2
# Flags 2 and test 3
# Flags 2 and test 4
# Flags 2 and test 5
# Flags 3 and test 0
# Flags 3 and test 1
# Flags 3 and test 2
# Flags 3 and test 3
# Flags 3 and test 4
# Flags 3 and test 5
# Flags 4 and test 0
# Flags 4 and test 1
# Flags 4 and test 2
# Flags 4 and test 3
# Flags 4 and test 4
# Flags 4 and test 5
# Flags 5 and test 0
# Flags 5 and test 1
# Flags 5 and test 2
# Flags 5 and test 3
# Flags 5 and test 4
# Flags 5 and test 5
# Flags 6 and test 0
# Flags 6 and test 1
# Flags 6 and test 2
# Flags 6 and test 3
# Flags 6 and test 4
# Flags 6 and test 5
ok 21 /fileutils/set-contents-full
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/read-link/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/read-link/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/read-link/.dirs/system-config1:/var/volatile/tmp/fileutils/read-link/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/read-link/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/read-link/.dirs/system-data1:/var/volatile/tmp/fileutils/read-link/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/read-link/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/read-link/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/read-link/.dirs/runtime
ok 22 /fileutils/read-link
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/system-config1:/var/volatile/tmp/fileutils/stdio-wrappers/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/system-data1:/var/volatile/tmp/fileutils/stdio-wrappers/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/stdio-wrappers/.dirs/runtime
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 23 /fileutils/stdio-wrappers
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/fopen-modes/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/fopen-modes/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/fopen-modes/.dirs/system-config1:/var/volatile/tmp/fileutils/fopen-modes/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/fopen-modes/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/fopen-modes/.dirs/system-data1:/var/volatile/tmp/fileutils/fopen-modes/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/fopen-modes/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/fopen-modes/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/fopen-modes/.dirs/runtime
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/119
# Testing fopen() mode 'w'
# Testing fopen() mode 'r'
# Testing fopen() mode 'a'
# Testing fopen() mode 'w+'
# Testing fopen() mode 'r+'
# Testing fopen() mode 'a+'
# Testing fopen() mode 'wb'
# Testing fopen() mode 'rb'
# Testing fopen() mode 'ab'
# Testing fopen() mode 'w+b'
# Testing fopen() mode 'r+b'
# Testing fopen() mode 'a+b'
# Testing fopen() mode 'wb+'
# Testing fopen() mode 'rb+'
# Testing fopen() mode 'ab+'
ok 24 /fileutils/fopen-modes
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/clear-fd/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/clear-fd/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/clear-fd/.dirs/system-config1:/var/volatile/tmp/fileutils/clear-fd/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/clear-fd/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/clear-fd/.dirs/system-data1:/var/volatile/tmp/fileutils/clear-fd/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/clear-fd/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/clear-fd/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/clear-fd/.dirs/runtime
# /fileutils/clear-fd summary: Test g_clear_fd() and g_autofd
# Will be closed by autocleanup: 3, -42
# Testing error handling
ok 25 /fileutils/clear-fd
# Start of set-contents-full tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/system-config1:/var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/system-data1:/var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/set-contents-full/read-only-file/.dirs/runtime
# We do not have CAP_DAC_OVERRIDE or equivalent
# /fileutils/set-contents-full/read-only-file summary: Test g_file_set_contents_full() on a read-only file
ok 26 /fileutils/set-contents-full/read-only-file
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/system-config1:/var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/system-data1:/var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/fileutils/set-contents-full/read-only-directory/.dirs/runtime
# /fileutils/set-contents-full/read-only-directory summary: Test g_file_set_contents_full() on a file in a read-only directory
# Flags 0
# We do not have CAP_DAC_OVERRIDE or equivalent
# Flags 1
# We do not have CAP_DAC_OVERRIDE or equivalent
# Flags 2
# We do not have CAP_DAC_OVERRIDE or equivalent
# Flags 3
# We do not have CAP_DAC_OVERRIDE or equivalent
# Flags 4
# We do not have CAP_DAC_OVERRIDE or equivalent
# Flags 5
# We do not have CAP_DAC_OVERRIDE or equivalent
# Flags 6
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 27 /fileutils/set-contents-full/read-only-directory
# End of set-contents-full tests
# Start of clear-fd tests
# Start of subprocess tests
# End of subprocess tests
# End of clear-fd tests
# End of fileutils tests
PASS: glib/fileutils.test
Running test: glib/type.test
TAP version 14
# random seed: R02S127ba7ca090c43a7ca0530d1fdb37ec0
1..6
# Start of type tests
ok 1 /type/registration-serial
ok 2 /type/interface-prerequisite
ok 3 /type/interface-check
ok 4 /type/next-base
ok 5 /type/is-a
# Invalid types can?t be queried.
# Unclassed types can?t be queried.
ok 6 /type/query
# End of type tests
PASS: glib/type.test
Running test: glib/network-monitor-race.test
TAP version 14
# random seed: R02S8ce269cc9b7aa9172558bcbe834a4ffa
1..1
# Start of network-monitor tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=793727
Executing: glib/network-monitor-race.test
ok 1 /network-monitor/create-in-thread
# slow test /network-monitor/create-in-thread executed in 2.16 secs
# End of network-monitor tests
PASS: glib/network-monitor-race.test
Running test: glib/deprecated-properties.test
TAP version 14
# random seed: R02Sabdba93da2e6f1381785d51aebdc6d9c
1..3
# Start of deprecated-properties tests
ok 1 /deprecated-properties/construct
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2748
ok 2 /deprecated-properties/default-construct
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2748
ok 3 /deprecated-properties/set
# End of deprecated-properties tests
PASS: glib/deprecated-properties.test
Running test: glib/vfs.test
TAP version 14
# random seed: R02S61f9f718ad6d948ee7c020e849ecfcc4
1..3
# Start of gvfs tests
ok 1 /gvfs/local
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 2 /gvfs/register-scheme
# Start of resource tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3090
# /gvfs/resource/malformed-escaping summary: Test that g_vfs_get_file_for_uri() returns an invalid file for an invalid URI
ok 3 /gvfs/resource/malformed-escaping
# End of resource tests
# End of gvfs tests
PASS: glib/vfs.test
Running test: glib/gi-inspect-typelib.py.test
TAP version 13
ok 1 __main__.TestGIInspectTypelibCommandLine.test_help
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpjhnojynl
# Running: ['/usr/bin/gi-inspect-typelib', '--help']
# Return code: 0
# Output:
#  Usage:
#   gi-inspect-typelib [OPTION…] NAMESPACE - Inspect GI typelib
# 
# Help Options:
#   -h, --help                    Show help options
# 
# Application Options:
#   --typelib-version=VERSION     Typelib version to inspect
#   --print-shlibs                List the shared libraries the typelib requires
#   --print-typelibs              List other typelibs the inspected typelib requires
# Error:
ok 2 __main__.TestGIInspectTypelibCommandLine.test_invalid_typelib
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpfs3wh33f
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', '--print-shlibs', 'AnInvalidNameSpace']
# Return code: 1
# Output:
#  
# Error:
#  Failed to load typelib: Typelib file for namespace 'AnInvalidNameSpace' (any version) not found
ok 3 __main__.TestGIInspectTypelibCommandLine.test_no_args
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpkuua08vh
# Running: ['/usr/bin/gi-inspect-typelib']
# Return code: 1
# Output:
#  
# Error:
#  Please specify exactly one namespace
ok 4 __main__.TestGIInspectTypelibForGLibTypelib.test_print_shlibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpd6g9r8z7
# Running: ['/usr/bin/gi-inspect-typelib', '--print-shlibs', 'GLib', '--typelib-version=2.0']
# Return code: 0
# Output:
#  shlib: libgobject-2.0.so.0
# shlib: libglib-2.0.so.0
# Error:
ok 5 __main__.TestGIInspectTypelibForGLibTypelib.test_print_typelibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmph5hu57xe
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', 'GLib', '--typelib-version=2.0']
# Return code: 0
# Output:
#  
# Error:
ok 6 __main__.TestGIInspectTypelibForGLibTypelib.test_print_typelibs_and_shlibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpu_muqdud
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', '--print-shlibs', 'GLib', '--typelib-version=2.0']
# Return code: 0
# Output:
#  shlib: libgobject-2.0.so.0
# shlib: libglib-2.0.so.0
# Error:
ok 7 __main__.TestGIInspectTypelibForGObjectTypelib.test_print_shlibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmphw2p8qly
# Running: ['/usr/bin/gi-inspect-typelib', '--print-shlibs', 'GObject', '--typelib-version=2.0']
# Return code: 0
# Output:
#  shlib: libgobject-2.0.so.0
# Error:
ok 8 __main__.TestGIInspectTypelibForGObjectTypelib.test_print_typelibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpubwi4osw
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', 'GObject', '--typelib-version=2.0']
# Return code: 0
# Output:
#  typelib: GLib-2.0
# Error:
ok 9 __main__.TestGIInspectTypelibForGObjectTypelib.test_print_typelibs_and_shlibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmp06igkjqd
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', '--print-shlibs', 'GObject', '--typelib-version=2.0']
# Return code: 0
# Output:
#  shlib: libgobject-2.0.so.0
# typelib: GLib-2.0
# Error:
ok 10 __main__.TestGIInspectTypelibForGioTypelib.test_print_shlibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpl3b4qyq2
# Running: ['/usr/bin/gi-inspect-typelib', '--print-shlibs', 'Gio', '--typelib-version=2.0']
# Return code: 0
# Output:
#  shlib: libgio-2.0.so.0
# Error:
ok 11 __main__.TestGIInspectTypelibForGioTypelib.test_print_typelibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpu2tf4ghr
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', 'Gio', '--typelib-version=2.0']
# Return code: 0
# Output:
#  typelib: GObject-2.0
# typelib: GLib-2.0
# typelib: GModule-2.0
# Error:
ok 12 __main__.TestGIInspectTypelibForGioTypelib.test_print_typelibs_and_shlibs
# gi-inspect-typelib: /usr/bin/gi-inspect-typelib
# tmpdir: /tmp/tmpc1tnfje0
# Running: ['/usr/bin/gi-inspect-typelib', '--print-typelibs', '--print-shlibs', 'Gio', '--typelib-version=2.0']
# Return code: 0
# Output:
#  shlib: libgio-2.0.so.0
# typelib: GObject-2.0
# typelib: GLib-2.0
# typelib: GModule-2.0
# Error:
1..12
PASS: glib/gi-inspect-typelib.py.test
Running test: glib/1bit-mutex.test
TAP version 14
# random seed: R02Sf26bd891ceb609e69b906ff77ac9ce92
1..2
# Start of glib tests
# Start of 1bit-mutex tests
ok 1 /glib/1bit-mutex/int
# slow test /glib/1bit-mutex/int executed in 1.61 secs
Executing: glib/1bit-mutex.test
ok 2 /glib/1bit-mutex/pointer
# slow test /glib/1bit-mutex/pointer executed in 1.73 secs
# End of 1bit-mutex tests
# End of glib tests
PASS: glib/1bit-mutex.test
Running test: glib/network-address.test
TAP version 14
# random seed: R02Sec9d57c60520b4517b7c16720cb6b284
1..72
# Start of network-address tests
ok 1 /network-address/basic
ok 2 /network-address/scope-id
ok 3 /network-address/uri-scope-id
ok 4 /network-address/to-string
# Start of parse-host tests
ok 5 /network-address/parse-host/0
ok 6 /network-address/parse-host/1
ok 7 /network-address/parse-host/2
ok 8 /network-address/parse-host/3
ok 9 /network-address/parse-host/4
ok 10 /network-address/parse-host/5
ok 11 /network-address/parse-host/6
ok 12 /network-address/parse-host/7
ok 13 /network-address/parse-host/8
ok 14 /network-address/parse-host/9
ok 15 /network-address/parse-host/10
ok 16 /network-address/parse-host/11
ok 17 /network-address/parse-host/12
ok 18 /network-address/parse-host/13
# End of parse-host tests
# Start of parse-uri tests
ok 19 /network-address/parse-uri/0
ok 20 /network-address/parse-uri/1
ok 21 /network-address/parse-uri/2
ok 22 /network-address/parse-uri/3
ok 23 /network-address/parse-uri/4
ok 24 /network-address/parse-uri/5
ok 25 /network-address/parse-uri/6
ok 26 /network-address/parse-uri/7
ok 27 /network-address/parse-uri/8
ok 28 /network-address/parse-uri/9
# End of parse-uri tests
# Start of resolve-address tests
# Input: 192.168.1.2
ok 29 /network-address/resolve-address/0
# Input: fe80::42
ok 30 /network-address/resolve-address/1
# Input: 192.168.1.2:80
ok 31 /network-address/resolve-address/2
# Input: [fe80::42]
ok 32 /network-address/resolve-address/3
# Input: [fe80::42]:80
ok 33 /network-address/resolve-address/4
# Input: 192.168.258
ok 34 /network-address/resolve-address/5
# Input: 192.11010306
ok 35 /network-address/resolve-address/6
# Input: 3232235778
ok 36 /network-address/resolve-address/7
# Input: 0300.0250.0001.0001
ok 37 /network-address/resolve-address/8
# Input: 0xC0.0xA8.0x01.0x02
ok 38 /network-address/resolve-address/9
# Input: 0xc0.0xa8.0x01.0x02
ok 39 /network-address/resolve-address/10
# Input: 0xc0a80102
ok 40 /network-address/resolve-address/11
# End of resolve-address tests
# Start of loopback tests
ok 41 /network-address/loopback/basic
ok 42 /network-address/loopback/sync
ok 43 /network-address/loopback/async
# End of loopback tests
# Start of localhost tests
ok 44 /network-address/localhost/async
ok 45 /network-address/localhost/sync
# End of localhost tests
# Start of happy-eyeballs tests
ok 46 /network-address/happy-eyeballs/basic
ok 47 /network-address/happy-eyeballs/parallel
ok 48 /network-address/happy-eyeballs/slow-ipv4
ok 49 /network-address/happy-eyeballs/slow-ipv6
ok 50 /network-address/happy-eyeballs/very-slow-ipv6
ok 51 /network-address/happy-eyeballs/slow-connection-and-ipv4
# slow test /network-address/happy-eyeballs/slow-connection-and-ipv4 executed in 0.80 secs
# GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken
ok 52 /network-address/happy-eyeballs/ipv6-error-ipv4-first
# GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken
ok 53 /network-address/happy-eyeballs/ipv6-error-ipv6-first
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/865
# /network-address/happy-eyeballs/ipv6-error-ipv4-very-slow summary: Ensure that we successfully return IPv4 results even when they come significantly later than an IPv6 failure.
# GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken
ok 54 /network-address/happy-eyeballs/ipv6-error-ipv4-very-slow
# GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken
ok 55 /network-address/happy-eyeballs/ipv4-error-ipv6-first
# GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken
ok 56 /network-address/happy-eyeballs/ipv4-error-ipv4-first
# GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken
# GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken
ok 57 /network-address/happy-eyeballs/both-error
# GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken
# GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken
ok 58 /network-address/happy-eyeballs/both-error-delays-1
# GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken
# GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken
ok 59 /network-address/happy-eyeballs/both-error-delays-2
# GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken
ok 60 /network-address/happy-eyeballs/both-error-delays-3
# End of happy-eyeballs tests
# End of network-address tests
# Start of gresolver tests
# Start of resolve-address tests
# Input: 192.168.1.2
ok 61 /gresolver/resolve-address/0
# Input: fe80::42
ok 62 /gresolver/resolve-address/1
# Input: 192.168.1.2:80
# Error: Error resolving ?192.168.1.2:80?: Name or service not known
ok 63 /gresolver/resolve-address/2
# Input: [fe80::42]
# Error: Error resolving ?[fe80::42]?: Name or service not known
ok 64 /gresolver/resolve-address/3
# Input: [fe80::42]:80
# Error: Error resolving ?[fe80::42]:80?: Name or service not known
ok 65 /gresolver/resolve-address/4
# Input: 192.168.258
# Error: Error resolving ?192.168.258?: Name or service not known
ok 66 /gresolver/resolve-address/5
# Input: 192.11010306
# Error: Error resolving ?192.11010306?: Name or service not known
ok 67 /gresolver/resolve-address/6
# Input: 3232235778
# Error: Error resolving ?3232235778?: Name or service not known
ok 68 /gresolver/resolve-address/7
# Input: 0300.0250.0001.0001
# Error: Error resolving ?0300.0250.0001.0001?: Name or service not known
ok 69 /gresolver/resolve-address/8
# Input: 0xC0.0xA8.0x01.0x02
# Error: Error resolving ?0xC0.0xA8.0x01.0x02?: Name or service not known
ok 70 /gresolver/resolve-address/9
# Input: 0xc0.0xa8.0x01.0x02
# Error: Error resolving ?0xc0.0xa8.0x01.0x02?: Name or service not known
ok 71 /gresolver/resolve-address/10
# Input: 0xc0a80102
# Error: Error resolving ?0xc0a80102?: Name or service not known
ok 72 /gresolver/resolve-address/11
# End of resolve-address tests
# End of gresolver tests
PASS: glib/network-address.test
Running test: glib/strfuncs.test
TAP version 14
# random seed: R02S17b3e584ccb4fc393878c97d6fc0e24f
1..51
# Start of strfuncs tests
ok 1 /strfuncs/ascii-strcasecmp
ok 2 /strfuncs/ascii_strdown
ok 3 /strfuncs/ascii_strdup
ok 4 /strfuncs/ascii_strtod
ok 5 /strfuncs/bounds-check
ok 6 /strfuncs/has-prefix
ok 7 /strfuncs/has-prefix-macro
ok 8 /strfuncs/has-suffix
ok 9 /strfuncs/has-suffix-macro
ok 10 /strfuncs/memdup
ok 11 /strfuncs/memdup2
ok 12 /strfuncs/set_str
ok 13 /strfuncs/stpcpy
ok 14 /strfuncs/str_match_string
ok 15 /strfuncs/str_tokenize_and_fold
ok 16 /strfuncs/strcanon
ok 17 /strfuncs/strchomp
ok 18 /strfuncs/strchug
ok 19 /strfuncs/strcompress-strescape
ok 20 /strfuncs/strconcat
ok 21 /strfuncs/strdelimit
ok 22 /strfuncs/strdup
ok 23 /strfuncs/strdup-printf
ok 24 /strfuncs/strdupv
ok 25 /strfuncs/strerror
ok 26 /strfuncs/strip-context
ok 27 /strfuncs/strjoin
ok 28 /strfuncs/strjoinv
ok 29 /strfuncs/strlcat
ok 30 /strfuncs/strlcpy
ok 31 /strfuncs/strncasecmp
ok 32 /strfuncs/strndup
ok 33 /strfuncs/strnfill
ok 34 /strfuncs/strreverse
ok 35 /strfuncs/strsignal
ok 36 /strfuncs/strsplit
ok 37 /strfuncs/strsplit-set
ok 38 /strfuncs/strstr
ok 39 /strfuncs/strtod
ok 40 /strfuncs/strtoull-strtoll
ok 41 /strfuncs/strup
ok 42 /strfuncs/strv-contains
ok 43 /strfuncs/strv-equal
ok 44 /strfuncs/strv-length
ok 45 /strfuncs/test-is-to-digit
ok 46 /strfuncs/transliteration
# /strfuncs/str-equal summary: Test macro and function forms of g_str_equal()
ok 47 /strfuncs/str-equal
ok 48 /strfuncs/str-is-ascii
# Start of ascii-string-to-num tests
ok 49 /strfuncs/ascii-string-to-num/pathological
ok 50 /strfuncs/ascii-string-to-num/usual
# End of ascii-string-to-num tests
# Start of strdup tests
ok 51 /strfuncs/strdup/inline
# End of strdup tests
# End of strfuncs tests
PASS: glib/strfuncs.test
Running test: glib/properties-refcount4.test
TAP version 14
# random seed: R02Sbeca2124ceae191e5813a41f2f684f42
1..1
# Start of gobject tests
# Start of refcount tests
ok 1 /gobject/refcount/properties-4
# End of refcount tests
# End of gobject tests
PASS: glib/properties-refcount4.test
Running test: glib/deftype.test
PASS: glib/deftype.test
Running test: glib/refcount.test
TAP version 14
# random seed: R02S23defc040116e04f281209b5a1239117
1..4
# Start of refcount tests
ok 1 /refcount/grefcount
ok 2 /refcount/gatomicrefcount
# Start of grefcount tests
ok 3 /refcount/grefcount/saturation
# End of grefcount tests
# Start of gatomicrefcount tests
ok 4 /refcount/gatomicrefcount/saturation
# End of gatomicrefcount tests
# End of refcount tests
PASS: glib/refcount.test
Running test: glib/dir.test
TAP version 14
# random seed: R02Se5ab1dd0db0aed6350ec32678a7f356f
1..3
# Start of dir tests
ok 1 /dir/read
ok 2 /dir/nonexisting
# /dir/refcounting summary: Test refcounting interactions with g_dir_close()
ok 3 /dir/refcounting
# End of dir tests
PASS: glib/dir.test
Running test: glib/socket-listener.test
TAP version 14
# random seed: R02Sd8b236ea5ba0834f6fb7bc3610e35682
1..1
# Start of socket-listener tests
ok 1 /socket-listener/event-signal
# End of socket-listener tests
PASS: glib/socket-listener.test
Running test: glib/cxx-98.test
TAP version 14
# random seed: R02S0c5d538820371261b20f4f8c67f542d3
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-98.test
Running test: glib/cxx-2b.test
TAP version 14
# random seed: R02Sfeef41116b048b41c342dfecf8b8527c
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-2b.test
Running test: glib/checksum.test
TAP version 14
# random seed: R02Sda4fd460efaeb90d190aba42b73c2e50
1..1851
# Start of checksum tests
ok 1 /checksum/unsupported
# Start of MD5 tests
ok 2 /checksum/MD5/0
ok 3 /checksum/MD5/1
ok 4 /checksum/MD5/2
ok 5 /checksum/MD5/3
ok 6 /checksum/MD5/4
ok 7 /checksum/MD5/5
ok 8 /checksum/MD5/6
ok 9 /checksum/MD5/7
ok 10 /checksum/MD5/8
ok 11 /checksum/MD5/9
ok 12 /checksum/MD5/10
ok 13 /checksum/MD5/11
ok 14 /checksum/MD5/12
ok 15 /checksum/MD5/13
ok 16 /checksum/MD5/14
ok 17 /checksum/MD5/15
ok 18 /checksum/MD5/16
ok 19 /checksum/MD5/17
ok 20 /checksum/MD5/18
ok 21 /checksum/MD5/19
ok 22 /checksum/MD5/20
ok 23 /checksum/MD5/21
ok 24 /checksum/MD5/22
ok 25 /checksum/MD5/23
ok 26 /checksum/MD5/24
ok 27 /checksum/MD5/25
ok 28 /checksum/MD5/26
ok 29 /checksum/MD5/27
ok 30 /checksum/MD5/28
ok 31 /checksum/MD5/29
ok 32 /checksum/MD5/30
ok 33 /checksum/MD5/31
ok 34 /checksum/MD5/32
ok 35 /checksum/MD5/33
ok 36 /checksum/MD5/34
ok 37 /checksum/MD5/35
ok 38 /checksum/MD5/36
ok 39 /checksum/MD5/37
ok 40 /checksum/MD5/38
ok 41 /checksum/MD5/39
ok 42 /checksum/MD5/40
ok 43 /checksum/MD5/41
ok 44 /checksum/MD5/42
ok 45 /checksum/MD5/43
ok 46 /checksum/MD5/44
ok 47 /checksum/MD5/45
ok 48 /checksum/MD5/46
ok 49 /checksum/MD5/47
ok 50 /checksum/MD5/48
ok 51 /checksum/MD5/49
ok 52 /checksum/MD5/50
ok 53 /checksum/MD5/51
ok 54 /checksum/MD5/52
ok 55 /checksum/MD5/53
ok 56 /checksum/MD5/54
ok 57 /checksum/MD5/55
ok 58 /checksum/MD5/56
ok 59 /checksum/MD5/57
ok 60 /checksum/MD5/58
ok 61 /checksum/MD5/59
ok 62 /checksum/MD5/60
ok 63 /checksum/MD5/61
ok 64 /checksum/MD5/62
ok 65 /checksum/MD5/63
ok 66 /checksum/MD5/64
ok 67 /checksum/MD5/65
ok 68 /checksum/MD5/66
ok 69 /checksum/MD5/67
ok 70 /checksum/MD5/68
ok 71 /checksum/MD5/69
ok 72 /checksum/MD5/70
ok 73 /checksum/MD5/71
ok 74 /checksum/MD5/72
ok 75 /checksum/MD5/73
ok 76 /checksum/MD5/74
ok 77 /checksum/MD5/75
ok 78 /checksum/MD5/76
ok 79 /checksum/MD5/77
ok 80 /checksum/MD5/78
ok 81 /checksum/MD5/79
ok 82 /checksum/MD5/80
ok 83 /checksum/MD5/81
ok 84 /checksum/MD5/82
ok 85 /checksum/MD5/83
ok 86 /checksum/MD5/84
ok 87 /checksum/MD5/85
ok 88 /checksum/MD5/86
ok 89 /checksum/MD5/87
ok 90 /checksum/MD5/88
ok 91 /checksum/MD5/89
ok 92 /checksum/MD5/90
ok 93 /checksum/MD5/91
ok 94 /checksum/MD5/92
ok 95 /checksum/MD5/93
ok 96 /checksum/MD5/94
ok 97 /checksum/MD5/95
ok 98 /checksum/MD5/96
ok 99 /checksum/MD5/97
ok 100 /checksum/MD5/98
ok 101 /checksum/MD5/99
ok 102 /checksum/MD5/100
ok 103 /checksum/MD5/101
ok 104 /checksum/MD5/102
ok 105 /checksum/MD5/103
ok 106 /checksum/MD5/104
ok 107 /checksum/MD5/105
ok 108 /checksum/MD5/106
ok 109 /checksum/MD5/107
ok 110 /checksum/MD5/108
ok 111 /checksum/MD5/109
ok 112 /checksum/MD5/110
ok 113 /checksum/MD5/111
ok 114 /checksum/MD5/112
ok 115 /checksum/MD5/113
ok 116 /checksum/MD5/114
ok 117 /checksum/MD5/115
ok 118 /checksum/MD5/116
ok 119 /checksum/MD5/117
ok 120 /checksum/MD5/118
ok 121 /checksum/MD5/119
ok 122 /checksum/MD5/120
ok 123 /checksum/MD5/121
ok 124 /checksum/MD5/122
ok 125 /checksum/MD5/123
ok 126 /checksum/MD5/124
ok 127 /checksum/MD5/125
ok 128 /checksum/MD5/126
ok 129 /checksum/MD5/127
ok 130 /checksum/MD5/128
ok 131 /checksum/MD5/129
ok 132 /checksum/MD5/130
ok 133 /checksum/MD5/131
ok 134 /checksum/MD5/132
ok 135 /checksum/MD5/133
ok 136 /checksum/MD5/134
ok 137 /checksum/MD5/135
ok 138 /checksum/MD5/136
ok 139 /checksum/MD5/137
ok 140 /checksum/MD5/138
ok 141 /checksum/MD5/139
ok 142 /checksum/MD5/140
ok 143 /checksum/MD5/141
ok 144 /checksum/MD5/142
ok 145 /checksum/MD5/143
ok 146 /checksum/MD5/144
ok 147 /checksum/MD5/145
ok 148 /checksum/MD5/146
ok 149 /checksum/MD5/147
ok 150 /checksum/MD5/148
ok 151 /checksum/MD5/149
ok 152 /checksum/MD5/150
ok 153 /checksum/MD5/151
ok 154 /checksum/MD5/152
ok 155 /checksum/MD5/153
ok 156 /checksum/MD5/154
ok 157 /checksum/MD5/155
ok 158 /checksum/MD5/156
ok 159 /checksum/MD5/157
ok 160 /checksum/MD5/158
ok 161 /checksum/MD5/159
ok 162 /checksum/MD5/160
ok 163 /checksum/MD5/161
ok 164 /checksum/MD5/162
ok 165 /checksum/MD5/163
ok 166 /checksum/MD5/164
ok 167 /checksum/MD5/165
ok 168 /checksum/MD5/166
ok 169 /checksum/MD5/167
ok 170 /checksum/MD5/168
ok 171 /checksum/MD5/169
ok 172 /checksum/MD5/170
ok 173 /checksum/MD5/171
ok 174 /checksum/MD5/172
ok 175 /checksum/MD5/173
ok 176 /checksum/MD5/174
ok 177 /checksum/MD5/175
ok 178 /checksum/MD5/176
ok 179 /checksum/MD5/177
ok 180 /checksum/MD5/178
ok 181 /checksum/MD5/179
ok 182 /checksum/MD5/180
ok 183 /checksum/MD5/181
ok 184 /checksum/MD5/182
ok 185 /checksum/MD5/183
ok 186 /checksum/MD5/string
ok 187 /checksum/MD5/bytes
# Start of reset tests
ok 188 /checksum/MD5/reset/0
ok 189 /checksum/MD5/reset/1
ok 190 /checksum/MD5/reset/2
ok 191 /checksum/MD5/reset/3
ok 192 /checksum/MD5/reset/4
ok 193 /checksum/MD5/reset/5
ok 194 /checksum/MD5/reset/6
ok 195 /checksum/MD5/reset/7
ok 196 /checksum/MD5/reset/8
ok 197 /checksum/MD5/reset/9
ok 198 /checksum/MD5/reset/10
ok 199 /checksum/MD5/reset/11
ok 200 /checksum/MD5/reset/12
ok 201 /checksum/MD5/reset/13
ok 202 /checksum/MD5/reset/14
ok 203 /checksum/MD5/reset/15
ok 204 /checksum/MD5/reset/16
ok 205 /checksum/MD5/reset/17
ok 206 /checksum/MD5/reset/18
ok 207 /checksum/MD5/reset/19
ok 208 /checksum/MD5/reset/20
ok 209 /checksum/MD5/reset/21
ok 210 /checksum/MD5/reset/22
ok 211 /checksum/MD5/reset/23
ok 212 /checksum/MD5/reset/24
ok 213 /checksum/MD5/reset/25
ok 214 /checksum/MD5/reset/26
ok 215 /checksum/MD5/reset/27
ok 216 /checksum/MD5/reset/28
ok 217 /checksum/MD5/reset/29
ok 218 /checksum/MD5/reset/30
ok 219 /checksum/MD5/reset/31
ok 220 /checksum/MD5/reset/32
ok 221 /checksum/MD5/reset/33
ok 222 /checksum/MD5/reset/34
ok 223 /checksum/MD5/reset/35
ok 224 /checksum/MD5/reset/36
ok 225 /checksum/MD5/reset/37
ok 226 /checksum/MD5/reset/38
ok 227 /checksum/MD5/reset/39
ok 228 /checksum/MD5/reset/40
ok 229 /checksum/MD5/reset/41
ok 230 /checksum/MD5/reset/42
ok 231 /checksum/MD5/reset/43
ok 232 /checksum/MD5/reset/44
ok 233 /checksum/MD5/reset/45
ok 234 /checksum/MD5/reset/46
ok 235 /checksum/MD5/reset/47
ok 236 /checksum/MD5/reset/48
ok 237 /checksum/MD5/reset/49
ok 238 /checksum/MD5/reset/50
ok 239 /checksum/MD5/reset/51
ok 240 /checksum/MD5/reset/52
ok 241 /checksum/MD5/reset/53
ok 242 /checksum/MD5/reset/54
ok 243 /checksum/MD5/reset/55
ok 244 /checksum/MD5/reset/56
ok 245 /checksum/MD5/reset/57
ok 246 /checksum/MD5/reset/58
ok 247 /checksum/MD5/reset/59
ok 248 /checksum/MD5/reset/60
ok 249 /checksum/MD5/reset/61
ok 250 /checksum/MD5/reset/62
ok 251 /checksum/MD5/reset/63
ok 252 /checksum/MD5/reset/64
ok 253 /checksum/MD5/reset/65
ok 254 /checksum/MD5/reset/66
ok 255 /checksum/MD5/reset/67
ok 256 /checksum/MD5/reset/68
ok 257 /checksum/MD5/reset/69
ok 258 /checksum/MD5/reset/70
ok 259 /checksum/MD5/reset/71
ok 260 /checksum/MD5/reset/72
ok 261 /checksum/MD5/reset/73
ok 262 /checksum/MD5/reset/74
ok 263 /checksum/MD5/reset/75
ok 264 /checksum/MD5/reset/76
ok 265 /checksum/MD5/reset/77
ok 266 /checksum/MD5/reset/78
ok 267 /checksum/MD5/reset/79
ok 268 /checksum/MD5/reset/80
ok 269 /checksum/MD5/reset/81
ok 270 /checksum/MD5/reset/82
ok 271 /checksum/MD5/reset/83
ok 272 /checksum/MD5/reset/84
ok 273 /checksum/MD5/reset/85
ok 274 /checksum/MD5/reset/86
ok 275 /checksum/MD5/reset/87
ok 276 /checksum/MD5/reset/88
ok 277 /checksum/MD5/reset/89
ok 278 /checksum/MD5/reset/90
ok 279 /checksum/MD5/reset/91
ok 280 /checksum/MD5/reset/92
ok 281 /checksum/MD5/reset/93
ok 282 /checksum/MD5/reset/94
ok 283 /checksum/MD5/reset/95
ok 284 /checksum/MD5/reset/96
ok 285 /checksum/MD5/reset/97
ok 286 /checksum/MD5/reset/98
ok 287 /checksum/MD5/reset/99
ok 288 /checksum/MD5/reset/100
ok 289 /checksum/MD5/reset/101
ok 290 /checksum/MD5/reset/102
ok 291 /checksum/MD5/reset/103
ok 292 /checksum/MD5/reset/104
ok 293 /checksum/MD5/reset/105
ok 294 /checksum/MD5/reset/106
ok 295 /checksum/MD5/reset/107
ok 296 /checksum/MD5/reset/108
ok 297 /checksum/MD5/reset/109
ok 298 /checksum/MD5/reset/110
ok 299 /checksum/MD5/reset/111
ok 300 /checksum/MD5/reset/112
ok 301 /checksum/MD5/reset/113
ok 302 /checksum/MD5/reset/114
ok 303 /checksum/MD5/reset/115
ok 304 /checksum/MD5/reset/116
ok 305 /checksum/MD5/reset/117
ok 306 /checksum/MD5/reset/118
ok 307 /checksum/MD5/reset/119
ok 308 /checksum/MD5/reset/120
ok 309 /checksum/MD5/reset/121
ok 310 /checksum/MD5/reset/122
ok 311 /checksum/MD5/reset/123
ok 312 /checksum/MD5/reset/124
ok 313 /checksum/MD5/reset/125
ok 314 /checksum/MD5/reset/126
ok 315 /checksum/MD5/reset/127
ok 316 /checksum/MD5/reset/128
ok 317 /checksum/MD5/reset/129
ok 318 /checksum/MD5/reset/130
ok 319 /checksum/MD5/reset/131
ok 320 /checksum/MD5/reset/132
ok 321 /checksum/MD5/reset/133
ok 322 /checksum/MD5/reset/134
ok 323 /checksum/MD5/reset/135
ok 324 /checksum/MD5/reset/136
ok 325 /checksum/MD5/reset/137
ok 326 /checksum/MD5/reset/138
ok 327 /checksum/MD5/reset/139
ok 328 /checksum/MD5/reset/140
ok 329 /checksum/MD5/reset/141
ok 330 /checksum/MD5/reset/142
ok 331 /checksum/MD5/reset/143
ok 332 /checksum/MD5/reset/144
ok 333 /checksum/MD5/reset/145
ok 334 /checksum/MD5/reset/146
ok 335 /checksum/MD5/reset/147
ok 336 /checksum/MD5/reset/148
ok 337 /checksum/MD5/reset/149
ok 338 /checksum/MD5/reset/150
ok 339 /checksum/MD5/reset/151
ok 340 /checksum/MD5/reset/152
ok 341 /checksum/MD5/reset/153
ok 342 /checksum/MD5/reset/154
ok 343 /checksum/MD5/reset/155
ok 344 /checksum/MD5/reset/156
ok 345 /checksum/MD5/reset/157
ok 346 /checksum/MD5/reset/158
ok 347 /checksum/MD5/reset/159
ok 348 /checksum/MD5/reset/160
ok 349 /checksum/MD5/reset/161
ok 350 /checksum/MD5/reset/162
ok 351 /checksum/MD5/reset/163
ok 352 /checksum/MD5/reset/164
ok 353 /checksum/MD5/reset/165
ok 354 /checksum/MD5/reset/166
ok 355 /checksum/MD5/reset/167
ok 356 /checksum/MD5/reset/168
ok 357 /checksum/MD5/reset/169
ok 358 /checksum/MD5/reset/170
ok 359 /checksum/MD5/reset/171
ok 360 /checksum/MD5/reset/172
ok 361 /checksum/MD5/reset/173
ok 362 /checksum/MD5/reset/174
ok 363 /checksum/MD5/reset/175
ok 364 /checksum/MD5/reset/176
ok 365 /checksum/MD5/reset/177
ok 366 /checksum/MD5/reset/178
ok 367 /checksum/MD5/reset/179
ok 368 /checksum/MD5/reset/180
ok 369 /checksum/MD5/reset/181
ok 370 /checksum/MD5/reset/182
ok 371 /checksum/MD5/reset/183
# End of reset tests
# End of MD5 tests
# Start of SHA1 tests
ok 372 /checksum/SHA1/0
ok 373 /checksum/SHA1/1
ok 374 /checksum/SHA1/2
ok 375 /checksum/SHA1/3
ok 376 /checksum/SHA1/4
ok 377 /checksum/SHA1/5
ok 378 /checksum/SHA1/6
ok 379 /checksum/SHA1/7
ok 380 /checksum/SHA1/8
ok 381 /checksum/SHA1/9
ok 382 /checksum/SHA1/10
ok 383 /checksum/SHA1/11
ok 384 /checksum/SHA1/12
ok 385 /checksum/SHA1/13
ok 386 /checksum/SHA1/14
ok 387 /checksum/SHA1/15
ok 388 /checksum/SHA1/16
ok 389 /checksum/SHA1/17
ok 390 /checksum/SHA1/18
ok 391 /checksum/SHA1/19
ok 392 /checksum/SHA1/20
ok 393 /checksum/SHA1/21
ok 394 /checksum/SHA1/22
ok 395 /checksum/SHA1/23
ok 396 /checksum/SHA1/24
ok 397 /checksum/SHA1/25
ok 398 /checksum/SHA1/26
ok 399 /checksum/SHA1/27
ok 400 /checksum/SHA1/28
ok 401 /checksum/SHA1/29
ok 402 /checksum/SHA1/30
ok 403 /checksum/SHA1/31
ok 404 /checksum/SHA1/32
ok 405 /checksum/SHA1/33
ok 406 /checksum/SHA1/34
ok 407 /checksum/SHA1/35
ok 408 /checksum/SHA1/36
ok 409 /checksum/SHA1/37
ok 410 /checksum/SHA1/38
ok 411 /checksum/SHA1/39
ok 412 /checksum/SHA1/40
ok 413 /checksum/SHA1/41
ok 414 /checksum/SHA1/42
ok 415 /checksum/SHA1/43
ok 416 /checksum/SHA1/44
ok 417 /checksum/SHA1/45
ok 418 /checksum/SHA1/46
ok 419 /checksum/SHA1/47
ok 420 /checksum/SHA1/48
ok 421 /checksum/SHA1/49
ok 422 /checksum/SHA1/50
ok 423 /checksum/SHA1/51
ok 424 /checksum/SHA1/52
ok 425 /checksum/SHA1/53
ok 426 /checksum/SHA1/54
ok 427 /checksum/SHA1/55
ok 428 /checksum/SHA1/56
ok 429 /checksum/SHA1/57
ok 430 /checksum/SHA1/58
ok 431 /checksum/SHA1/59
ok 432 /checksum/SHA1/60
ok 433 /checksum/SHA1/61
ok 434 /checksum/SHA1/62
ok 435 /checksum/SHA1/63
ok 436 /checksum/SHA1/64
ok 437 /checksum/SHA1/65
ok 438 /checksum/SHA1/66
ok 439 /checksum/SHA1/67
ok 440 /checksum/SHA1/68
ok 441 /checksum/SHA1/69
ok 442 /checksum/SHA1/70
ok 443 /checksum/SHA1/71
ok 444 /checksum/SHA1/72
ok 445 /checksum/SHA1/73
ok 446 /checksum/SHA1/74
ok 447 /checksum/SHA1/75
ok 448 /checksum/SHA1/76
ok 449 /checksum/SHA1/77
ok 450 /checksum/SHA1/78
ok 451 /checksum/SHA1/79
ok 452 /checksum/SHA1/80
ok 453 /checksum/SHA1/81
ok 454 /checksum/SHA1/82
ok 455 /checksum/SHA1/83
ok 456 /checksum/SHA1/84
ok 457 /checksum/SHA1/85
ok 458 /checksum/SHA1/86
ok 459 /checksum/SHA1/87
ok 460 /checksum/SHA1/88
ok 461 /checksum/SHA1/89
ok 462 /checksum/SHA1/90
ok 463 /checksum/SHA1/91
ok 464 /checksum/SHA1/92
ok 465 /checksum/SHA1/93
ok 466 /checksum/SHA1/94
ok 467 /checksum/SHA1/95
ok 468 /checksum/SHA1/96
ok 469 /checksum/SHA1/97
ok 470 /checksum/SHA1/98
ok 471 /checksum/SHA1/99
ok 472 /checksum/SHA1/100
ok 473 /checksum/SHA1/101
ok 474 /checksum/SHA1/102
ok 475 /checksum/SHA1/103
ok 476 /checksum/SHA1/104
ok 477 /checksum/SHA1/105
ok 478 /checksum/SHA1/106
ok 479 /checksum/SHA1/107
ok 480 /checksum/SHA1/108
ok 481 /checksum/SHA1/109
ok 482 /checksum/SHA1/110
ok 483 /checksum/SHA1/111
ok 484 /checksum/SHA1/112
ok 485 /checksum/SHA1/113
ok 486 /checksum/SHA1/114
ok 487 /checksum/SHA1/115
ok 488 /checksum/SHA1/116
ok 489 /checksum/SHA1/117
ok 490 /checksum/SHA1/118
ok 491 /checksum/SHA1/119
ok 492 /checksum/SHA1/120
ok 493 /checksum/SHA1/121
ok 494 /checksum/SHA1/122
ok 495 /checksum/SHA1/123
ok 496 /checksum/SHA1/124
ok 497 /checksum/SHA1/125
ok 498 /checksum/SHA1/126
ok 499 /checksum/SHA1/127
ok 500 /checksum/SHA1/128
ok 501 /checksum/SHA1/129
ok 502 /checksum/SHA1/130
ok 503 /checksum/SHA1/131
ok 504 /checksum/SHA1/132
ok 505 /checksum/SHA1/133
ok 506 /checksum/SHA1/134
ok 507 /checksum/SHA1/135
ok 508 /checksum/SHA1/136
ok 509 /checksum/SHA1/137
ok 510 /checksum/SHA1/138
ok 511 /checksum/SHA1/139
ok 512 /checksum/SHA1/140
ok 513 /checksum/SHA1/141
ok 514 /checksum/SHA1/142
ok 515 /checksum/SHA1/143
ok 516 /checksum/SHA1/144
ok 517 /checksum/SHA1/145
ok 518 /checksum/SHA1/146
ok 519 /checksum/SHA1/147
ok 520 /checksum/SHA1/148
ok 521 /checksum/SHA1/149
ok 522 /checksum/SHA1/150
ok 523 /checksum/SHA1/151
ok 524 /checksum/SHA1/152
ok 525 /checksum/SHA1/153
ok 526 /checksum/SHA1/154
ok 527 /checksum/SHA1/155
ok 528 /checksum/SHA1/156
ok 529 /checksum/SHA1/157
ok 530 /checksum/SHA1/158
ok 531 /checksum/SHA1/159
ok 532 /checksum/SHA1/160
ok 533 /checksum/SHA1/161
ok 534 /checksum/SHA1/162
ok 535 /checksum/SHA1/163
ok 536 /checksum/SHA1/164
ok 537 /checksum/SHA1/165
ok 538 /checksum/SHA1/166
ok 539 /checksum/SHA1/167
ok 540 /checksum/SHA1/168
ok 541 /checksum/SHA1/169
ok 542 /checksum/SHA1/170
ok 543 /checksum/SHA1/171
ok 544 /checksum/SHA1/172
ok 545 /checksum/SHA1/173
ok 546 /checksum/SHA1/174
ok 547 /checksum/SHA1/175
ok 548 /checksum/SHA1/176
ok 549 /checksum/SHA1/177
ok 550 /checksum/SHA1/178
ok 551 /checksum/SHA1/179
ok 552 /checksum/SHA1/180
ok 553 /checksum/SHA1/181
ok 554 /checksum/SHA1/182
ok 555 /checksum/SHA1/183
ok 556 /checksum/SHA1/string
ok 557 /checksum/SHA1/bytes
# Start of reset tests
ok 558 /checksum/SHA1/reset/0
ok 559 /checksum/SHA1/reset/1
ok 560 /checksum/SHA1/reset/2
ok 561 /checksum/SHA1/reset/3
ok 562 /checksum/SHA1/reset/4
ok 563 /checksum/SHA1/reset/5
ok 564 /checksum/SHA1/reset/6
ok 565 /checksum/SHA1/reset/7
ok 566 /checksum/SHA1/reset/8
ok 567 /checksum/SHA1/reset/9
ok 568 /checksum/SHA1/reset/10
ok 569 /checksum/SHA1/reset/11
ok 570 /checksum/SHA1/reset/12
ok 571 /checksum/SHA1/reset/13
ok 572 /checksum/SHA1/reset/14
ok 573 /checksum/SHA1/reset/15
ok 574 /checksum/SHA1/reset/16
ok 575 /checksum/SHA1/reset/17
ok 576 /checksum/SHA1/reset/18
ok 577 /checksum/SHA1/reset/19
ok 578 /checksum/SHA1/reset/20
ok 579 /checksum/SHA1/reset/21
ok 580 /checksum/SHA1/reset/22
ok 581 /checksum/SHA1/reset/23
ok 582 /checksum/SHA1/reset/24
ok 583 /checksum/SHA1/reset/25
ok 584 /checksum/SHA1/reset/26
ok 585 /checksum/SHA1/reset/27
ok 586 /checksum/SHA1/reset/28
ok 587 /checksum/SHA1/reset/29
ok 588 /checksum/SHA1/reset/30
ok 589 /checksum/SHA1/reset/31
ok 590 /checksum/SHA1/reset/32
ok 591 /checksum/SHA1/reset/33
ok 592 /checksum/SHA1/reset/34
ok 593 /checksum/SHA1/reset/35
ok 594 /checksum/SHA1/reset/36
ok 595 /checksum/SHA1/reset/37
ok 596 /checksum/SHA1/reset/38
ok 597 /checksum/SHA1/reset/39
ok 598 /checksum/SHA1/reset/40
ok 599 /checksum/SHA1/reset/41
ok 600 /checksum/SHA1/reset/42
ok 601 /checksum/SHA1/reset/43
ok 602 /checksum/SHA1/reset/44
ok 603 /checksum/SHA1/reset/45
ok 604 /checksum/SHA1/reset/46
ok 605 /checksum/SHA1/reset/47
ok 606 /checksum/SHA1/reset/48
ok 607 /checksum/SHA1/reset/49
ok 608 /checksum/SHA1/reset/50
ok 609 /checksum/SHA1/reset/51
ok 610 /checksum/SHA1/reset/52
ok 611 /checksum/SHA1/reset/53
ok 612 /checksum/SHA1/reset/54
ok 613 /checksum/SHA1/reset/55
ok 614 /checksum/SHA1/reset/56
ok 615 /checksum/SHA1/reset/57
ok 616 /checksum/SHA1/reset/58
ok 617 /checksum/SHA1/reset/59
ok 618 /checksum/SHA1/reset/60
ok 619 /checksum/SHA1/reset/61
ok 620 /checksum/SHA1/reset/62
ok 621 /checksum/SHA1/reset/63
ok 622 /checksum/SHA1/reset/64
ok 623 /checksum/SHA1/reset/65
ok 624 /checksum/SHA1/reset/66
ok 625 /checksum/SHA1/reset/67
ok 626 /checksum/SHA1/reset/68
ok 627 /checksum/SHA1/reset/69
ok 628 /checksum/SHA1/reset/70
ok 629 /checksum/SHA1/reset/71
ok 630 /checksum/SHA1/reset/72
ok 631 /checksum/SHA1/reset/73
ok 632 /checksum/SHA1/reset/74
ok 633 /checksum/SHA1/reset/75
ok 634 /checksum/SHA1/reset/76
ok 635 /checksum/SHA1/reset/77
ok 636 /checksum/SHA1/reset/78
ok 637 /checksum/SHA1/reset/79
ok 638 /checksum/SHA1/reset/80
ok 639 /checksum/SHA1/reset/81
ok 640 /checksum/SHA1/reset/82
ok 641 /checksum/SHA1/reset/83
ok 642 /checksum/SHA1/reset/84
ok 643 /checksum/SHA1/reset/85
ok 644 /checksum/SHA1/reset/86
ok 645 /checksum/SHA1/reset/87
ok 646 /checksum/SHA1/reset/88
ok 647 /checksum/SHA1/reset/89
ok 648 /checksum/SHA1/reset/90
ok 649 /checksum/SHA1/reset/91
ok 650 /checksum/SHA1/reset/92
ok 651 /checksum/SHA1/reset/93
ok 652 /checksum/SHA1/reset/94
ok 653 /checksum/SHA1/reset/95
ok 654 /checksum/SHA1/reset/96
ok 655 /checksum/SHA1/reset/97
ok 656 /checksum/SHA1/reset/98
ok 657 /checksum/SHA1/reset/99
ok 658 /checksum/SHA1/reset/100
ok 659 /checksum/SHA1/reset/101
ok 660 /checksum/SHA1/reset/102
ok 661 /checksum/SHA1/reset/103
ok 662 /checksum/SHA1/reset/104
ok 663 /checksum/SHA1/reset/105
ok 664 /checksum/SHA1/reset/106
ok 665 /checksum/SHA1/reset/107
ok 666 /checksum/SHA1/reset/108
ok 667 /checksum/SHA1/reset/109
ok 668 /checksum/SHA1/reset/110
ok 669 /checksum/SHA1/reset/111
ok 670 /checksum/SHA1/reset/112
ok 671 /checksum/SHA1/reset/113
ok 672 /checksum/SHA1/reset/114
ok 673 /checksum/SHA1/reset/115
ok 674 /checksum/SHA1/reset/116
ok 675 /checksum/SHA1/reset/117
ok 676 /checksum/SHA1/reset/118
ok 677 /checksum/SHA1/reset/119
ok 678 /checksum/SHA1/reset/120
ok 679 /checksum/SHA1/reset/121
ok 680 /checksum/SHA1/reset/122
ok 681 /checksum/SHA1/reset/123
ok 682 /checksum/SHA1/reset/124
ok 683 /checksum/SHA1/reset/125
ok 684 /checksum/SHA1/reset/126
ok 685 /checksum/SHA1/reset/127
ok 686 /checksum/SHA1/reset/128
ok 687 /checksum/SHA1/reset/129
ok 688 /checksum/SHA1/reset/130
ok 689 /checksum/SHA1/reset/131
ok 690 /checksum/SHA1/reset/132
ok 691 /checksum/SHA1/reset/133
ok 692 /checksum/SHA1/reset/134
ok 693 /checksum/SHA1/reset/135
ok 694 /checksum/SHA1/reset/136
ok 695 /checksum/SHA1/reset/137
ok 696 /checksum/SHA1/reset/138
ok 697 /checksum/SHA1/reset/139
ok 698 /checksum/SHA1/reset/140
ok 699 /checksum/SHA1/reset/141
ok 700 /checksum/SHA1/reset/142
ok 701 /checksum/SHA1/reset/143
ok 702 /checksum/SHA1/reset/144
ok 703 /checksum/SHA1/reset/145
ok 704 /checksum/SHA1/reset/146
ok 705 /checksum/SHA1/reset/147
ok 706 /checksum/SHA1/reset/148
ok 707 /checksum/SHA1/reset/149
ok 708 /checksum/SHA1/reset/150
ok 709 /checksum/SHA1/reset/151
ok 710 /checksum/SHA1/reset/152
ok 711 /checksum/SHA1/reset/153
ok 712 /checksum/SHA1/reset/154
ok 713 /checksum/SHA1/reset/155
ok 714 /checksum/SHA1/reset/156
ok 715 /checksum/SHA1/reset/157
ok 716 /checksum/SHA1/reset/158
ok 717 /checksum/SHA1/reset/159
ok 718 /checksum/SHA1/reset/160
ok 719 /checksum/SHA1/reset/161
ok 720 /checksum/SHA1/reset/162
ok 721 /checksum/SHA1/reset/163
ok 722 /checksum/SHA1/reset/164
ok 723 /checksum/SHA1/reset/165
ok 724 /checksum/SHA1/reset/166
ok 725 /checksum/SHA1/reset/167
ok 726 /checksum/SHA1/reset/168
ok 727 /checksum/SHA1/reset/169
ok 728 /checksum/SHA1/reset/170
ok 729 /checksum/SHA1/reset/171
ok 730 /checksum/SHA1/reset/172
ok 731 /checksum/SHA1/reset/173
ok 732 /checksum/SHA1/reset/174
ok 733 /checksum/SHA1/reset/175
ok 734 /checksum/SHA1/reset/176
ok 735 /checksum/SHA1/reset/177
ok 736 /checksum/SHA1/reset/178
ok 737 /checksum/SHA1/reset/179
ok 738 /checksum/SHA1/reset/180
ok 739 /checksum/SHA1/reset/181
ok 740 /checksum/SHA1/reset/182
ok 741 /checksum/SHA1/reset/183
# End of reset tests
# End of SHA1 tests
# Start of SHA256 tests
ok 742 /checksum/SHA256/0
ok 743 /checksum/SHA256/1
ok 744 /checksum/SHA256/2
ok 745 /checksum/SHA256/3
ok 746 /checksum/SHA256/4
ok 747 /checksum/SHA256/5
ok 748 /checksum/SHA256/6
ok 749 /checksum/SHA256/7
ok 750 /checksum/SHA256/8
ok 751 /checksum/SHA256/9
ok 752 /checksum/SHA256/10
ok 753 /checksum/SHA256/11
ok 754 /checksum/SHA256/12
ok 755 /checksum/SHA256/13
ok 756 /checksum/SHA256/14
ok 757 /checksum/SHA256/15
ok 758 /checksum/SHA256/16
ok 759 /checksum/SHA256/17
ok 760 /checksum/SHA256/18
ok 761 /checksum/SHA256/19
ok 762 /checksum/SHA256/20
ok 763 /checksum/SHA256/21
ok 764 /checksum/SHA256/22
ok 765 /checksum/SHA256/23
ok 766 /checksum/SHA256/24
ok 767 /checksum/SHA256/25
ok 768 /checksum/SHA256/26
ok 769 /checksum/SHA256/27
ok 770 /checksum/SHA256/28
ok 771 /checksum/SHA256/29
ok 772 /checksum/SHA256/30
ok 773 /checksum/SHA256/31
ok 774 /checksum/SHA256/32
ok 775 /checksum/SHA256/33
ok 776 /checksum/SHA256/34
ok 777 /checksum/SHA256/35
ok 778 /checksum/SHA256/36
ok 779 /checksum/SHA256/37
ok 780 /checksum/SHA256/38
ok 781 /checksum/SHA256/39
ok 782 /checksum/SHA256/40
ok 783 /checksum/SHA256/41
ok 784 /checksum/SHA256/42
ok 785 /checksum/SHA256/43
ok 786 /checksum/SHA256/44
ok 787 /checksum/SHA256/45
ok 788 /checksum/SHA256/46
ok 789 /checksum/SHA256/47
ok 790 /checksum/SHA256/48
ok 791 /checksum/SHA256/49
ok 792 /checksum/SHA256/50
ok 793 /checksum/SHA256/51
ok 794 /checksum/SHA256/52
ok 795 /checksum/SHA256/53
ok 796 /checksum/SHA256/54
ok 797 /checksum/SHA256/55
ok 798 /checksum/SHA256/56
ok 799 /checksum/SHA256/57
ok 800 /checksum/SHA256/58
ok 801 /checksum/SHA256/59
ok 802 /checksum/SHA256/60
ok 803 /checksum/SHA256/61
ok 804 /checksum/SHA256/62
ok 805 /checksum/SHA256/63
ok 806 /checksum/SHA256/64
ok 807 /checksum/SHA256/65
ok 808 /checksum/SHA256/66
ok 809 /checksum/SHA256/67
ok 810 /checksum/SHA256/68
ok 811 /checksum/SHA256/69
ok 812 /checksum/SHA256/70
ok 813 /checksum/SHA256/71
ok 814 /checksum/SHA256/72
ok 815 /checksum/SHA256/73
ok 816 /checksum/SHA256/74
ok 817 /checksum/SHA256/75
ok 818 /checksum/SHA256/76
ok 819 /checksum/SHA256/77
ok 820 /checksum/SHA256/78
ok 821 /checksum/SHA256/79
ok 822 /checksum/SHA256/80
ok 823 /checksum/SHA256/81
ok 824 /checksum/SHA256/82
ok 825 /checksum/SHA256/83
ok 826 /checksum/SHA256/84
ok 827 /checksum/SHA256/85
ok 828 /checksum/SHA256/86
ok 829 /checksum/SHA256/87
ok 830 /checksum/SHA256/88
ok 831 /checksum/SHA256/89
ok 832 /checksum/SHA256/90
ok 833 /checksum/SHA256/91
ok 834 /checksum/SHA256/92
ok 835 /checksum/SHA256/93
ok 836 /checksum/SHA256/94
ok 837 /checksum/SHA256/95
ok 838 /checksum/SHA256/96
ok 839 /checksum/SHA256/97
ok 840 /checksum/SHA256/98
ok 841 /checksum/SHA256/99
ok 842 /checksum/SHA256/100
ok 843 /checksum/SHA256/101
ok 844 /checksum/SHA256/102
ok 845 /checksum/SHA256/103
ok 846 /checksum/SHA256/104
ok 847 /checksum/SHA256/105
ok 848 /checksum/SHA256/106
ok 849 /checksum/SHA256/107
ok 850 /checksum/SHA256/108
ok 851 /checksum/SHA256/109
ok 852 /checksum/SHA256/110
ok 853 /checksum/SHA256/111
ok 854 /checksum/SHA256/112
ok 855 /checksum/SHA256/113
ok 856 /checksum/SHA256/114
ok 857 /checksum/SHA256/115
ok 858 /checksum/SHA256/116
ok 859 /checksum/SHA256/117
ok 860 /checksum/SHA256/118
ok 861 /checksum/SHA256/119
ok 862 /checksum/SHA256/120
ok 863 /checksum/SHA256/121
ok 864 /checksum/SHA256/122
ok 865 /checksum/SHA256/123
ok 866 /checksum/SHA256/124
ok 867 /checksum/SHA256/125
ok 868 /checksum/SHA256/126
ok 869 /checksum/SHA256/127
ok 870 /checksum/SHA256/128
ok 871 /checksum/SHA256/129
ok 872 /checksum/SHA256/130
ok 873 /checksum/SHA256/131
ok 874 /checksum/SHA256/132
ok 875 /checksum/SHA256/133
ok 876 /checksum/SHA256/134
ok 877 /checksum/SHA256/135
ok 878 /checksum/SHA256/136
ok 879 /checksum/SHA256/137
ok 880 /checksum/SHA256/138
ok 881 /checksum/SHA256/139
ok 882 /checksum/SHA256/140
ok 883 /checksum/SHA256/141
ok 884 /checksum/SHA256/142
ok 885 /checksum/SHA256/143
ok 886 /checksum/SHA256/144
ok 887 /checksum/SHA256/145
ok 888 /checksum/SHA256/146
ok 889 /checksum/SHA256/147
ok 890 /checksum/SHA256/148
ok 891 /checksum/SHA256/149
ok 892 /checksum/SHA256/150
ok 893 /checksum/SHA256/151
ok 894 /checksum/SHA256/152
ok 895 /checksum/SHA256/153
ok 896 /checksum/SHA256/154
ok 897 /checksum/SHA256/155
ok 898 /checksum/SHA256/156
ok 899 /checksum/SHA256/157
ok 900 /checksum/SHA256/158
ok 901 /checksum/SHA256/159
ok 902 /checksum/SHA256/160
ok 903 /checksum/SHA256/161
ok 904 /checksum/SHA256/162
ok 905 /checksum/SHA256/163
ok 906 /checksum/SHA256/164
ok 907 /checksum/SHA256/165
ok 908 /checksum/SHA256/166
ok 909 /checksum/SHA256/167
ok 910 /checksum/SHA256/168
ok 911 /checksum/SHA256/169
ok 912 /checksum/SHA256/170
ok 913 /checksum/SHA256/171
ok 914 /checksum/SHA256/172
ok 915 /checksum/SHA256/173
ok 916 /checksum/SHA256/174
ok 917 /checksum/SHA256/175
ok 918 /checksum/SHA256/176
ok 919 /checksum/SHA256/177
ok 920 /checksum/SHA256/178
ok 921 /checksum/SHA256/179
ok 922 /checksum/SHA256/180
ok 923 /checksum/SHA256/181
ok 924 /checksum/SHA256/182
ok 925 /checksum/SHA256/183
ok 926 /checksum/SHA256/string
ok 927 /checksum/SHA256/bytes
# Start of reset tests
ok 928 /checksum/SHA256/reset/0
ok 929 /checksum/SHA256/reset/1
ok 930 /checksum/SHA256/reset/2
ok 931 /checksum/SHA256/reset/3
ok 932 /checksum/SHA256/reset/4
ok 933 /checksum/SHA256/reset/5
ok 934 /checksum/SHA256/reset/6
ok 935 /checksum/SHA256/reset/7
ok 936 /checksum/SHA256/reset/8
ok 937 /checksum/SHA256/reset/9
ok 938 /checksum/SHA256/reset/10
ok 939 /checksum/SHA256/reset/11
ok 940 /checksum/SHA256/reset/12
ok 941 /checksum/SHA256/reset/13
ok 942 /checksum/SHA256/reset/14
ok 943 /checksum/SHA256/reset/15
ok 944 /checksum/SHA256/reset/16
ok 945 /checksum/SHA256/reset/17
ok 946 /checksum/SHA256/reset/18
ok 947 /checksum/SHA256/reset/19
ok 948 /checksum/SHA256/reset/20
ok 949 /checksum/SHA256/reset/21
ok 950 /checksum/SHA256/reset/22
ok 951 /checksum/SHA256/reset/23
ok 952 /checksum/SHA256/reset/24
ok 953 /checksum/SHA256/reset/25
ok 954 /checksum/SHA256/reset/26
ok 955 /checksum/SHA256/reset/27
ok 956 /checksum/SHA256/reset/28
ok 957 /checksum/SHA256/reset/29
ok 958 /checksum/SHA256/reset/30
ok 959 /checksum/SHA256/reset/31
ok 960 /checksum/SHA256/reset/32
ok 961 /checksum/SHA256/reset/33
ok 962 /checksum/SHA256/reset/34
ok 963 /checksum/SHA256/reset/35
ok 964 /checksum/SHA256/reset/36
ok 965 /checksum/SHA256/reset/37
ok 966 /checksum/SHA256/reset/38
ok 967 /checksum/SHA256/reset/39
ok 968 /checksum/SHA256/reset/40
ok 969 /checksum/SHA256/reset/41
ok 970 /checksum/SHA256/reset/42
ok 971 /checksum/SHA256/reset/43
ok 972 /checksum/SHA256/reset/44
ok 973 /checksum/SHA256/reset/45
ok 974 /checksum/SHA256/reset/46
ok 975 /checksum/SHA256/reset/47
ok 976 /checksum/SHA256/reset/48
ok 977 /checksum/SHA256/reset/49
ok 978 /checksum/SHA256/reset/50
ok 979 /checksum/SHA256/reset/51
ok 980 /checksum/SHA256/reset/52
ok 981 /checksum/SHA256/reset/53
ok 982 /checksum/SHA256/reset/54
ok 983 /checksum/SHA256/reset/55
ok 984 /checksum/SHA256/reset/56
ok 985 /checksum/SHA256/reset/57
ok 986 /checksum/SHA256/reset/58
ok 987 /checksum/SHA256/reset/59
ok 988 /checksum/SHA256/reset/60
ok 989 /checksum/SHA256/reset/61
ok 990 /checksum/SHA256/reset/62
ok 991 /checksum/SHA256/reset/63
ok 992 /checksum/SHA256/reset/64
ok 993 /checksum/SHA256/reset/65
ok 994 /checksum/SHA256/reset/66
ok 995 /checksum/SHA256/reset/67
ok 996 /checksum/SHA256/reset/68
ok 997 /checksum/SHA256/reset/69
ok 998 /checksum/SHA256/reset/70
ok 999 /checksum/SHA256/reset/71
ok 1000 /checksum/SHA256/reset/72
ok 1001 /checksum/SHA256/reset/73
ok 1002 /checksum/SHA256/reset/74
ok 1003 /checksum/SHA256/reset/75
ok 1004 /checksum/SHA256/reset/76
ok 1005 /checksum/SHA256/reset/77
ok 1006 /checksum/SHA256/reset/78
ok 1007 /checksum/SHA256/reset/79
ok 1008 /checksum/SHA256/reset/80
ok 1009 /checksum/SHA256/reset/81
ok 1010 /checksum/SHA256/reset/82
ok 1011 /checksum/SHA256/reset/83
ok 1012 /checksum/SHA256/reset/84
ok 1013 /checksum/SHA256/reset/85
ok 1014 /checksum/SHA256/reset/86
ok 1015 /checksum/SHA256/reset/87
ok 1016 /checksum/SHA256/reset/88
ok 1017 /checksum/SHA256/reset/89
ok 1018 /checksum/SHA256/reset/90
ok 1019 /checksum/SHA256/reset/91
ok 1020 /checksum/SHA256/reset/92
ok 1021 /checksum/SHA256/reset/93
ok 1022 /checksum/SHA256/reset/94
ok 1023 /checksum/SHA256/reset/95
ok 1024 /checksum/SHA256/reset/96
ok 1025 /checksum/SHA256/reset/97
ok 1026 /checksum/SHA256/reset/98
ok 1027 /checksum/SHA256/reset/99
ok 1028 /checksum/SHA256/reset/100
ok 1029 /checksum/SHA256/reset/101
ok 1030 /checksum/SHA256/reset/102
ok 1031 /checksum/SHA256/reset/103
ok 1032 /checksum/SHA256/reset/104
ok 1033 /checksum/SHA256/reset/105
ok 1034 /checksum/SHA256/reset/106
ok 1035 /checksum/SHA256/reset/107
ok 1036 /checksum/SHA256/reset/108
ok 1037 /checksum/SHA256/reset/109
ok 1038 /checksum/SHA256/reset/110
ok 1039 /checksum/SHA256/reset/111
ok 1040 /checksum/SHA256/reset/112
ok 1041 /checksum/SHA256/reset/113
ok 1042 /checksum/SHA256/reset/114
ok 1043 /checksum/SHA256/reset/115
ok 1044 /checksum/SHA256/reset/116
ok 1045 /checksum/SHA256/reset/117
ok 1046 /checksum/SHA256/reset/118
ok 1047 /checksum/SHA256/reset/119
ok 1048 /checksum/SHA256/reset/120
ok 1049 /checksum/SHA256/reset/121
ok 1050 /checksum/SHA256/reset/122
ok 1051 /checksum/SHA256/reset/123
ok 1052 /checksum/SHA256/reset/124
ok 1053 /checksum/SHA256/reset/125
ok 1054 /checksum/SHA256/reset/126
ok 1055 /checksum/SHA256/reset/127
ok 1056 /checksum/SHA256/reset/128
ok 1057 /checksum/SHA256/reset/129
ok 1058 /checksum/SHA256/reset/130
ok 1059 /checksum/SHA256/reset/131
ok 1060 /checksum/SHA256/reset/132
ok 1061 /checksum/SHA256/reset/133
ok 1062 /checksum/SHA256/reset/134
ok 1063 /checksum/SHA256/reset/135
ok 1064 /checksum/SHA256/reset/136
ok 1065 /checksum/SHA256/reset/137
ok 1066 /checksum/SHA256/reset/138
ok 1067 /checksum/SHA256/reset/139
ok 1068 /checksum/SHA256/reset/140
ok 1069 /checksum/SHA256/reset/141
ok 1070 /checksum/SHA256/reset/142
ok 1071 /checksum/SHA256/reset/143
ok 1072 /checksum/SHA256/reset/144
ok 1073 /checksum/SHA256/reset/145
ok 1074 /checksum/SHA256/reset/146
ok 1075 /checksum/SHA256/reset/147
ok 1076 /checksum/SHA256/reset/148
ok 1077 /checksum/SHA256/reset/149
ok 1078 /checksum/SHA256/reset/150
ok 1079 /checksum/SHA256/reset/151
ok 1080 /checksum/SHA256/reset/152
ok 1081 /checksum/SHA256/reset/153
ok 1082 /checksum/SHA256/reset/154
ok 1083 /checksum/SHA256/reset/155
ok 1084 /checksum/SHA256/reset/156
ok 1085 /checksum/SHA256/reset/157
ok 1086 /checksum/SHA256/reset/158
ok 1087 /checksum/SHA256/reset/159
ok 1088 /checksum/SHA256/reset/160
ok 1089 /checksum/SHA256/reset/161
ok 1090 /checksum/SHA256/reset/162
ok 1091 /checksum/SHA256/reset/163
ok 1092 /checksum/SHA256/reset/164
ok 1093 /checksum/SHA256/reset/165
ok 1094 /checksum/SHA256/reset/166
ok 1095 /checksum/SHA256/reset/167
ok 1096 /checksum/SHA256/reset/168
ok 1097 /checksum/SHA256/reset/169
ok 1098 /checksum/SHA256/reset/170
ok 1099 /checksum/SHA256/reset/171
ok 1100 /checksum/SHA256/reset/172
ok 1101 /checksum/SHA256/reset/173
ok 1102 /checksum/SHA256/reset/174
ok 1103 /checksum/SHA256/reset/175
ok 1104 /checksum/SHA256/reset/176
ok 1105 /checksum/SHA256/reset/177
ok 1106 /checksum/SHA256/reset/178
ok 1107 /checksum/SHA256/reset/179
ok 1108 /checksum/SHA256/reset/180
ok 1109 /checksum/SHA256/reset/181
ok 1110 /checksum/SHA256/reset/182
ok 1111 /checksum/SHA256/reset/183
# End of reset tests
# End of SHA256 tests
# Start of SHA384 tests
ok 1112 /checksum/SHA384/0
ok 1113 /checksum/SHA384/1
ok 1114 /checksum/SHA384/2
ok 1115 /checksum/SHA384/3
ok 1116 /checksum/SHA384/4
ok 1117 /checksum/SHA384/5
ok 1118 /checksum/SHA384/6
ok 1119 /checksum/SHA384/7
ok 1120 /checksum/SHA384/8
ok 1121 /checksum/SHA384/9
ok 1122 /checksum/SHA384/10
ok 1123 /checksum/SHA384/11
ok 1124 /checksum/SHA384/12
ok 1125 /checksum/SHA384/13
ok 1126 /checksum/SHA384/14
ok 1127 /checksum/SHA384/15
ok 1128 /checksum/SHA384/16
ok 1129 /checksum/SHA384/17
ok 1130 /checksum/SHA384/18
ok 1131 /checksum/SHA384/19
ok 1132 /checksum/SHA384/20
ok 1133 /checksum/SHA384/21
ok 1134 /checksum/SHA384/22
ok 1135 /checksum/SHA384/23
ok 1136 /checksum/SHA384/24
ok 1137 /checksum/SHA384/25
ok 1138 /checksum/SHA384/26
ok 1139 /checksum/SHA384/27
ok 1140 /checksum/SHA384/28
ok 1141 /checksum/SHA384/29
ok 1142 /checksum/SHA384/30
ok 1143 /checksum/SHA384/31
ok 1144 /checksum/SHA384/32
ok 1145 /checksum/SHA384/33
ok 1146 /checksum/SHA384/34
ok 1147 /checksum/SHA384/35
ok 1148 /checksum/SHA384/36
ok 1149 /checksum/SHA384/37
ok 1150 /checksum/SHA384/38
ok 1151 /checksum/SHA384/39
ok 1152 /checksum/SHA384/40
ok 1153 /checksum/SHA384/41
ok 1154 /checksum/SHA384/42
ok 1155 /checksum/SHA384/43
ok 1156 /checksum/SHA384/44
ok 1157 /checksum/SHA384/45
ok 1158 /checksum/SHA384/46
ok 1159 /checksum/SHA384/47
ok 1160 /checksum/SHA384/48
ok 1161 /checksum/SHA384/49
ok 1162 /checksum/SHA384/50
ok 1163 /checksum/SHA384/51
ok 1164 /checksum/SHA384/52
ok 1165 /checksum/SHA384/53
ok 1166 /checksum/SHA384/54
ok 1167 /checksum/SHA384/55
ok 1168 /checksum/SHA384/56
ok 1169 /checksum/SHA384/57
ok 1170 /checksum/SHA384/58
ok 1171 /checksum/SHA384/59
ok 1172 /checksum/SHA384/60
ok 1173 /checksum/SHA384/61
ok 1174 /checksum/SHA384/62
ok 1175 /checksum/SHA384/63
ok 1176 /checksum/SHA384/64
ok 1177 /checksum/SHA384/65
ok 1178 /checksum/SHA384/66
ok 1179 /checksum/SHA384/67
ok 1180 /checksum/SHA384/68
ok 1181 /checksum/SHA384/69
ok 1182 /checksum/SHA384/70
ok 1183 /checksum/SHA384/71
ok 1184 /checksum/SHA384/72
ok 1185 /checksum/SHA384/73
ok 1186 /checksum/SHA384/74
ok 1187 /checksum/SHA384/75
ok 1188 /checksum/SHA384/76
ok 1189 /checksum/SHA384/77
ok 1190 /checksum/SHA384/78
ok 1191 /checksum/SHA384/79
ok 1192 /checksum/SHA384/80
ok 1193 /checksum/SHA384/81
ok 1194 /checksum/SHA384/82
ok 1195 /checksum/SHA384/83
ok 1196 /checksum/SHA384/84
ok 1197 /checksum/SHA384/85
ok 1198 /checksum/SHA384/86
ok 1199 /checksum/SHA384/87
ok 1200 /checksum/SHA384/88
ok 1201 /checksum/SHA384/89
ok 1202 /checksum/SHA384/90
ok 1203 /checksum/SHA384/91
ok 1204 /checksum/SHA384/92
ok 1205 /checksum/SHA384/93
ok 1206 /checksum/SHA384/94
ok 1207 /checksum/SHA384/95
ok 1208 /checksum/SHA384/96
ok 1209 /checksum/SHA384/97
ok 1210 /checksum/SHA384/98
ok 1211 /checksum/SHA384/99
ok 1212 /checksum/SHA384/100
ok 1213 /checksum/SHA384/101
ok 1214 /checksum/SHA384/102
ok 1215 /checksum/SHA384/103
ok 1216 /checksum/SHA384/104
ok 1217 /checksum/SHA384/105
ok 1218 /checksum/SHA384/106
ok 1219 /checksum/SHA384/107
ok 1220 /checksum/SHA384/108
ok 1221 /checksum/SHA384/109
ok 1222 /checksum/SHA384/110
ok 1223 /checksum/SHA384/111
ok 1224 /checksum/SHA384/112
ok 1225 /checksum/SHA384/113
ok 1226 /checksum/SHA384/114
ok 1227 /checksum/SHA384/115
ok 1228 /checksum/SHA384/116
ok 1229 /checksum/SHA384/117
ok 1230 /checksum/SHA384/118
ok 1231 /checksum/SHA384/119
ok 1232 /checksum/SHA384/120
ok 1233 /checksum/SHA384/121
ok 1234 /checksum/SHA384/122
ok 1235 /checksum/SHA384/123
ok 1236 /checksum/SHA384/124
ok 1237 /checksum/SHA384/125
ok 1238 /checksum/SHA384/126
ok 1239 /checksum/SHA384/127
ok 1240 /checksum/SHA384/128
ok 1241 /checksum/SHA384/129
ok 1242 /checksum/SHA384/130
ok 1243 /checksum/SHA384/131
ok 1244 /checksum/SHA384/132
ok 1245 /checksum/SHA384/133
ok 1246 /checksum/SHA384/134
ok 1247 /checksum/SHA384/135
ok 1248 /checksum/SHA384/136
ok 1249 /checksum/SHA384/137
ok 1250 /checksum/SHA384/138
ok 1251 /checksum/SHA384/139
ok 1252 /checksum/SHA384/140
ok 1253 /checksum/SHA384/141
ok 1254 /checksum/SHA384/142
ok 1255 /checksum/SHA384/143
ok 1256 /checksum/SHA384/144
ok 1257 /checksum/SHA384/145
ok 1258 /checksum/SHA384/146
ok 1259 /checksum/SHA384/147
ok 1260 /checksum/SHA384/148
ok 1261 /checksum/SHA384/149
ok 1262 /checksum/SHA384/150
ok 1263 /checksum/SHA384/151
ok 1264 /checksum/SHA384/152
ok 1265 /checksum/SHA384/153
ok 1266 /checksum/SHA384/154
ok 1267 /checksum/SHA384/155
ok 1268 /checksum/SHA384/156
ok 1269 /checksum/SHA384/157
ok 1270 /checksum/SHA384/158
ok 1271 /checksum/SHA384/159
ok 1272 /checksum/SHA384/160
ok 1273 /checksum/SHA384/161
ok 1274 /checksum/SHA384/162
ok 1275 /checksum/SHA384/163
ok 1276 /checksum/SHA384/164
ok 1277 /checksum/SHA384/165
ok 1278 /checksum/SHA384/166
ok 1279 /checksum/SHA384/167
ok 1280 /checksum/SHA384/168
ok 1281 /checksum/SHA384/169
ok 1282 /checksum/SHA384/170
ok 1283 /checksum/SHA384/171
ok 1284 /checksum/SHA384/172
ok 1285 /checksum/SHA384/173
ok 1286 /checksum/SHA384/174
ok 1287 /checksum/SHA384/175
ok 1288 /checksum/SHA384/176
ok 1289 /checksum/SHA384/177
ok 1290 /checksum/SHA384/178
ok 1291 /checksum/SHA384/179
ok 1292 /checksum/SHA384/180
ok 1293 /checksum/SHA384/181
ok 1294 /checksum/SHA384/182
ok 1295 /checksum/SHA384/183
ok 1296 /checksum/SHA384/string
ok 1297 /checksum/SHA384/bytes
# Start of reset tests
ok 1298 /checksum/SHA384/reset/0
ok 1299 /checksum/SHA384/reset/1
ok 1300 /checksum/SHA384/reset/2
ok 1301 /checksum/SHA384/reset/3
ok 1302 /checksum/SHA384/reset/4
ok 1303 /checksum/SHA384/reset/5
ok 1304 /checksum/SHA384/reset/6
ok 1305 /checksum/SHA384/reset/7
ok 1306 /checksum/SHA384/reset/8
ok 1307 /checksum/SHA384/reset/9
ok 1308 /checksum/SHA384/reset/10
ok 1309 /checksum/SHA384/reset/11
ok 1310 /checksum/SHA384/reset/12
ok 1311 /checksum/SHA384/reset/13
ok 1312 /checksum/SHA384/reset/14
ok 1313 /checksum/SHA384/reset/15
ok 1314 /checksum/SHA384/reset/16
ok 1315 /checksum/SHA384/reset/17
ok 1316 /checksum/SHA384/reset/18
ok 1317 /checksum/SHA384/reset/19
ok 1318 /checksum/SHA384/reset/20
ok 1319 /checksum/SHA384/reset/21
ok 1320 /checksum/SHA384/reset/22
ok 1321 /checksum/SHA384/reset/23
ok 1322 /checksum/SHA384/reset/24
ok 1323 /checksum/SHA384/reset/25
ok 1324 /checksum/SHA384/reset/26
ok 1325 /checksum/SHA384/reset/27
ok 1326 /checksum/SHA384/reset/28
ok 1327 /checksum/SHA384/reset/29
ok 1328 /checksum/SHA384/reset/30
ok 1329 /checksum/SHA384/reset/31
ok 1330 /checksum/SHA384/reset/32
ok 1331 /checksum/SHA384/reset/33
ok 1332 /checksum/SHA384/reset/34
ok 1333 /checksum/SHA384/reset/35
ok 1334 /checksum/SHA384/reset/36
ok 1335 /checksum/SHA384/reset/37
ok 1336 /checksum/SHA384/reset/38
ok 1337 /checksum/SHA384/reset/39
ok 1338 /checksum/SHA384/reset/40
ok 1339 /checksum/SHA384/reset/41
ok 1340 /checksum/SHA384/reset/42
ok 1341 /checksum/SHA384/reset/43
ok 1342 /checksum/SHA384/reset/44
ok 1343 /checksum/SHA384/reset/45
ok 1344 /checksum/SHA384/reset/46
ok 1345 /checksum/SHA384/reset/47
ok 1346 /checksum/SHA384/reset/48
ok 1347 /checksum/SHA384/reset/49
ok 1348 /checksum/SHA384/reset/50
ok 1349 /checksum/SHA384/reset/51
ok 1350 /checksum/SHA384/reset/52
ok 1351 /checksum/SHA384/reset/53
ok 1352 /checksum/SHA384/reset/54
ok 1353 /checksum/SHA384/reset/55
ok 1354 /checksum/SHA384/reset/56
ok 1355 /checksum/SHA384/reset/57
ok 1356 /checksum/SHA384/reset/58
ok 1357 /checksum/SHA384/reset/59
ok 1358 /checksum/SHA384/reset/60
ok 1359 /checksum/SHA384/reset/61
ok 1360 /checksum/SHA384/reset/62
ok 1361 /checksum/SHA384/reset/63
ok 1362 /checksum/SHA384/reset/64
ok 1363 /checksum/SHA384/reset/65
ok 1364 /checksum/SHA384/reset/66
ok 1365 /checksum/SHA384/reset/67
ok 1366 /checksum/SHA384/reset/68
ok 1367 /checksum/SHA384/reset/69
ok 1368 /checksum/SHA384/reset/70
ok 1369 /checksum/SHA384/reset/71
ok 1370 /checksum/SHA384/reset/72
ok 1371 /checksum/SHA384/reset/73
ok 1372 /checksum/SHA384/reset/74
ok 1373 /checksum/SHA384/reset/75
ok 1374 /checksum/SHA384/reset/76
ok 1375 /checksum/SHA384/reset/77
ok 1376 /checksum/SHA384/reset/78
ok 1377 /checksum/SHA384/reset/79
ok 1378 /checksum/SHA384/reset/80
ok 1379 /checksum/SHA384/reset/81
ok 1380 /checksum/SHA384/reset/82
ok 1381 /checksum/SHA384/reset/83
ok 1382 /checksum/SHA384/reset/84
ok 1383 /checksum/SHA384/reset/85
ok 1384 /checksum/SHA384/reset/86
ok 1385 /checksum/SHA384/reset/87
ok 1386 /checksum/SHA384/reset/88
ok 1387 /checksum/SHA384/reset/89
ok 1388 /checksum/SHA384/reset/90
ok 1389 /checksum/SHA384/reset/91
ok 1390 /checksum/SHA384/reset/92
ok 1391 /checksum/SHA384/reset/93
ok 1392 /checksum/SHA384/reset/94
ok 1393 /checksum/SHA384/reset/95
ok 1394 /checksum/SHA384/reset/96
ok 1395 /checksum/SHA384/reset/97
ok 1396 /checksum/SHA384/reset/98
ok 1397 /checksum/SHA384/reset/99
ok 1398 /checksum/SHA384/reset/100
ok 1399 /checksum/SHA384/reset/101
ok 1400 /checksum/SHA384/reset/102
ok 1401 /checksum/SHA384/reset/103
ok 1402 /checksum/SHA384/reset/104
ok 1403 /checksum/SHA384/reset/105
ok 1404 /checksum/SHA384/reset/106
ok 1405 /checksum/SHA384/reset/107
ok 1406 /checksum/SHA384/reset/108
ok 1407 /checksum/SHA384/reset/109
ok 1408 /checksum/SHA384/reset/110
ok 1409 /checksum/SHA384/reset/111
ok 1410 /checksum/SHA384/reset/112
ok 1411 /checksum/SHA384/reset/113
ok 1412 /checksum/SHA384/reset/114
ok 1413 /checksum/SHA384/reset/115
ok 1414 /checksum/SHA384/reset/116
ok 1415 /checksum/SHA384/reset/117
ok 1416 /checksum/SHA384/reset/118
ok 1417 /checksum/SHA384/reset/119
ok 1418 /checksum/SHA384/reset/120
ok 1419 /checksum/SHA384/reset/121
ok 1420 /checksum/SHA384/reset/122
ok 1421 /checksum/SHA384/reset/123
ok 1422 /checksum/SHA384/reset/124
ok 1423 /checksum/SHA384/reset/125
ok 1424 /checksum/SHA384/reset/126
ok 1425 /checksum/SHA384/reset/127
ok 1426 /checksum/SHA384/reset/128
ok 1427 /checksum/SHA384/reset/129
ok 1428 /checksum/SHA384/reset/130
ok 1429 /checksum/SHA384/reset/131
ok 1430 /checksum/SHA384/reset/132
ok 1431 /checksum/SHA384/reset/133
ok 1432 /checksum/SHA384/reset/134
ok 1433 /checksum/SHA384/reset/135
ok 1434 /checksum/SHA384/reset/136
ok 1435 /checksum/SHA384/reset/137
ok 1436 /checksum/SHA384/reset/138
ok 1437 /checksum/SHA384/reset/139
ok 1438 /checksum/SHA384/reset/140
ok 1439 /checksum/SHA384/reset/141
ok 1440 /checksum/SHA384/reset/142
ok 1441 /checksum/SHA384/reset/143
ok 1442 /checksum/SHA384/reset/144
ok 1443 /checksum/SHA384/reset/145
ok 1444 /checksum/SHA384/reset/146
ok 1445 /checksum/SHA384/reset/147
ok 1446 /checksum/SHA384/reset/148
ok 1447 /checksum/SHA384/reset/149
ok 1448 /checksum/SHA384/reset/150
ok 1449 /checksum/SHA384/reset/151
ok 1450 /checksum/SHA384/reset/152
ok 1451 /checksum/SHA384/reset/153
ok 1452 /checksum/SHA384/reset/154
ok 1453 /checksum/SHA384/reset/155
ok 1454 /checksum/SHA384/reset/156
ok 1455 /checksum/SHA384/reset/157
ok 1456 /checksum/SHA384/reset/158
ok 1457 /checksum/SHA384/reset/159
ok 1458 /checksum/SHA384/reset/160
ok 1459 /checksum/SHA384/reset/161
ok 1460 /checksum/SHA384/reset/162
ok 1461 /checksum/SHA384/reset/163
ok 1462 /checksum/SHA384/reset/164
ok 1463 /checksum/SHA384/reset/165
ok 1464 /checksum/SHA384/reset/166
ok 1465 /checksum/SHA384/reset/167
ok 1466 /checksum/SHA384/reset/168
ok 1467 /checksum/SHA384/reset/169
ok 1468 /checksum/SHA384/reset/170
ok 1469 /checksum/SHA384/reset/171
ok 1470 /checksum/SHA384/reset/172
ok 1471 /checksum/SHA384/reset/173
ok 1472 /checksum/SHA384/reset/174
ok 1473 /checksum/SHA384/reset/175
ok 1474 /checksum/SHA384/reset/176
ok 1475 /checksum/SHA384/reset/177
ok 1476 /checksum/SHA384/reset/178
ok 1477 /checksum/SHA384/reset/179
ok 1478 /checksum/SHA384/reset/180
ok 1479 /checksum/SHA384/reset/181
ok 1480 /checksum/SHA384/reset/182
ok 1481 /checksum/SHA384/reset/183
# End of reset tests
# End of SHA384 tests
# Start of SHA512 tests
ok 1482 /checksum/SHA512/0
ok 1483 /checksum/SHA512/1
ok 1484 /checksum/SHA512/2
ok 1485 /checksum/SHA512/3
ok 1486 /checksum/SHA512/4
ok 1487 /checksum/SHA512/5
ok 1488 /checksum/SHA512/6
ok 1489 /checksum/SHA512/7
ok 1490 /checksum/SHA512/8
ok 1491 /checksum/SHA512/9
ok 1492 /checksum/SHA512/10
ok 1493 /checksum/SHA512/11
ok 1494 /checksum/SHA512/12
ok 1495 /checksum/SHA512/13
ok 1496 /checksum/SHA512/14
ok 1497 /checksum/SHA512/15
ok 1498 /checksum/SHA512/16
ok 1499 /checksum/SHA512/17
ok 1500 /checksum/SHA512/18
ok 1501 /checksum/SHA512/19
ok 1502 /checksum/SHA512/20
ok 1503 /checksum/SHA512/21
ok 1504 /checksum/SHA512/22
ok 1505 /checksum/SHA512/23
ok 1506 /checksum/SHA512/24
ok 1507 /checksum/SHA512/25
ok 1508 /checksum/SHA512/26
ok 1509 /checksum/SHA512/27
ok 1510 /checksum/SHA512/28
ok 1511 /checksum/SHA512/29
ok 1512 /checksum/SHA512/30
ok 1513 /checksum/SHA512/31
ok 1514 /checksum/SHA512/32
ok 1515 /checksum/SHA512/33
ok 1516 /checksum/SHA512/34
ok 1517 /checksum/SHA512/35
ok 1518 /checksum/SHA512/36
ok 1519 /checksum/SHA512/37
ok 1520 /checksum/SHA512/38
ok 1521 /checksum/SHA512/39
ok 1522 /checksum/SHA512/40
ok 1523 /checksum/SHA512/41
ok 1524 /checksum/SHA512/42
ok 1525 /checksum/SHA512/43
ok 1526 /checksum/SHA512/44
ok 1527 /checksum/SHA512/45
ok 1528 /checksum/SHA512/46
ok 1529 /checksum/SHA512/47
ok 1530 /checksum/SHA512/48
ok 1531 /checksum/SHA512/49
ok 1532 /checksum/SHA512/50
ok 1533 /checksum/SHA512/51
ok 1534 /checksum/SHA512/52
ok 1535 /checksum/SHA512/53
ok 1536 /checksum/SHA512/54
ok 1537 /checksum/SHA512/55
ok 1538 /checksum/SHA512/56
ok 1539 /checksum/SHA512/57
ok 1540 /checksum/SHA512/58
ok 1541 /checksum/SHA512/59
ok 1542 /checksum/SHA512/60
ok 1543 /checksum/SHA512/61
ok 1544 /checksum/SHA512/62
ok 1545 /checksum/SHA512/63
ok 1546 /checksum/SHA512/64
ok 1547 /checksum/SHA512/65
ok 1548 /checksum/SHA512/66
ok 1549 /checksum/SHA512/67
ok 1550 /checksum/SHA512/68
ok 1551 /checksum/SHA512/69
ok 1552 /checksum/SHA512/70
ok 1553 /checksum/SHA512/71
ok 1554 /checksum/SHA512/72
ok 1555 /checksum/SHA512/73
ok 1556 /checksum/SHA512/74
ok 1557 /checksum/SHA512/75
ok 1558 /checksum/SHA512/76
ok 1559 /checksum/SHA512/77
ok 1560 /checksum/SHA512/78
ok 1561 /checksum/SHA512/79
ok 1562 /checksum/SHA512/80
ok 1563 /checksum/SHA512/81
ok 1564 /checksum/SHA512/82
ok 1565 /checksum/SHA512/83
ok 1566 /checksum/SHA512/84
ok 1567 /checksum/SHA512/85
ok 1568 /checksum/SHA512/86
ok 1569 /checksum/SHA512/87
ok 1570 /checksum/SHA512/88
ok 1571 /checksum/SHA512/89
ok 1572 /checksum/SHA512/90
ok 1573 /checksum/SHA512/91
ok 1574 /checksum/SHA512/92
ok 1575 /checksum/SHA512/93
ok 1576 /checksum/SHA512/94
ok 1577 /checksum/SHA512/95
ok 1578 /checksum/SHA512/96
ok 1579 /checksum/SHA512/97
ok 1580 /checksum/SHA512/98
ok 1581 /checksum/SHA512/99
ok 1582 /checksum/SHA512/100
ok 1583 /checksum/SHA512/101
ok 1584 /checksum/SHA512/102
ok 1585 /checksum/SHA512/103
ok 1586 /checksum/SHA512/104
ok 1587 /checksum/SHA512/105
ok 1588 /checksum/SHA512/106
ok 1589 /checksum/SHA512/107
ok 1590 /checksum/SHA512/108
ok 1591 /checksum/SHA512/109
ok 1592 /checksum/SHA512/110
ok 1593 /checksum/SHA512/111
ok 1594 /checksum/SHA512/112
ok 1595 /checksum/SHA512/113
ok 1596 /checksum/SHA512/114
ok 1597 /checksum/SHA512/115
ok 1598 /checksum/SHA512/116
ok 1599 /checksum/SHA512/117
ok 1600 /checksum/SHA512/118
ok 1601 /checksum/SHA512/119
ok 1602 /checksum/SHA512/120
ok 1603 /checksum/SHA512/121
ok 1604 /checksum/SHA512/122
ok 1605 /checksum/SHA512/123
ok 1606 /checksum/SHA512/124
ok 1607 /checksum/SHA512/125
ok 1608 /checksum/SHA512/126
ok 1609 /checksum/SHA512/127
ok 1610 /checksum/SHA512/128
ok 1611 /checksum/SHA512/129
ok 1612 /checksum/SHA512/130
ok 1613 /checksum/SHA512/131
ok 1614 /checksum/SHA512/132
ok 1615 /checksum/SHA512/133
ok 1616 /checksum/SHA512/134
ok 1617 /checksum/SHA512/135
ok 1618 /checksum/SHA512/136
ok 1619 /checksum/SHA512/137
ok 1620 /checksum/SHA512/138
ok 1621 /checksum/SHA512/139
ok 1622 /checksum/SHA512/140
ok 1623 /checksum/SHA512/141
ok 1624 /checksum/SHA512/142
ok 1625 /checksum/SHA512/143
ok 1626 /checksum/SHA512/144
ok 1627 /checksum/SHA512/145
ok 1628 /checksum/SHA512/146
ok 1629 /checksum/SHA512/147
ok 1630 /checksum/SHA512/148
ok 1631 /checksum/SHA512/149
ok 1632 /checksum/SHA512/150
ok 1633 /checksum/SHA512/151
ok 1634 /checksum/SHA512/152
ok 1635 /checksum/SHA512/153
ok 1636 /checksum/SHA512/154
ok 1637 /checksum/SHA512/155
ok 1638 /checksum/SHA512/156
ok 1639 /checksum/SHA512/157
ok 1640 /checksum/SHA512/158
ok 1641 /checksum/SHA512/159
ok 1642 /checksum/SHA512/160
ok 1643 /checksum/SHA512/161
ok 1644 /checksum/SHA512/162
ok 1645 /checksum/SHA512/163
ok 1646 /checksum/SHA512/164
ok 1647 /checksum/SHA512/165
ok 1648 /checksum/SHA512/166
ok 1649 /checksum/SHA512/167
ok 1650 /checksum/SHA512/168
ok 1651 /checksum/SHA512/169
ok 1652 /checksum/SHA512/170
ok 1653 /checksum/SHA512/171
ok 1654 /checksum/SHA512/172
ok 1655 /checksum/SHA512/173
ok 1656 /checksum/SHA512/174
ok 1657 /checksum/SHA512/175
ok 1658 /checksum/SHA512/176
ok 1659 /checksum/SHA512/177
ok 1660 /checksum/SHA512/178
ok 1661 /checksum/SHA512/179
ok 1662 /checksum/SHA512/180
ok 1663 /checksum/SHA512/181
ok 1664 /checksum/SHA512/182
ok 1665 /checksum/SHA512/183
ok 1666 /checksum/SHA512/string
ok 1667 /checksum/SHA512/bytes
# Start of reset tests
ok 1668 /checksum/SHA512/reset/0
ok 1669 /checksum/SHA512/reset/1
ok 1670 /checksum/SHA512/reset/2
ok 1671 /checksum/SHA512/reset/3
ok 1672 /checksum/SHA512/reset/4
ok 1673 /checksum/SHA512/reset/5
ok 1674 /checksum/SHA512/reset/6
ok 1675 /checksum/SHA512/reset/7
ok 1676 /checksum/SHA512/reset/8
ok 1677 /checksum/SHA512/reset/9
ok 1678 /checksum/SHA512/reset/10
ok 1679 /checksum/SHA512/reset/11
ok 1680 /checksum/SHA512/reset/12
ok 1681 /checksum/SHA512/reset/13
ok 1682 /checksum/SHA512/reset/14
ok 1683 /checksum/SHA512/reset/15
ok 1684 /checksum/SHA512/reset/16
ok 1685 /checksum/SHA512/reset/17
ok 1686 /checksum/SHA512/reset/18
ok 1687 /checksum/SHA512/reset/19
ok 1688 /checksum/SHA512/reset/20
ok 1689 /checksum/SHA512/reset/21
ok 1690 /checksum/SHA512/reset/22
ok 1691 /checksum/SHA512/reset/23
ok 1692 /checksum/SHA512/reset/24
ok 1693 /checksum/SHA512/reset/25
ok 1694 /checksum/SHA512/reset/26
ok 1695 /checksum/SHA512/reset/27
ok 1696 /checksum/SHA512/reset/28
ok 1697 /checksum/SHA512/reset/29
ok 1698 /checksum/SHA512/reset/30
ok 1699 /checksum/SHA512/reset/31
ok 1700 /checksum/SHA512/reset/32
ok 1701 /checksum/SHA512/reset/33
ok 1702 /checksum/SHA512/reset/34
ok 1703 /checksum/SHA512/reset/35
ok 1704 /checksum/SHA512/reset/36
ok 1705 /checksum/SHA512/reset/37
ok 1706 /checksum/SHA512/reset/38
ok 1707 /checksum/SHA512/reset/39
ok 1708 /checksum/SHA512/reset/40
ok 1709 /checksum/SHA512/reset/41
ok 1710 /checksum/SHA512/reset/42
ok 1711 /checksum/SHA512/reset/43
ok 1712 /checksum/SHA512/reset/44
ok 1713 /checksum/SHA512/reset/45
ok 1714 /checksum/SHA512/reset/46
ok 1715 /checksum/SHA512/reset/47
ok 1716 /checksum/SHA512/reset/48
ok 1717 /checksum/SHA512/reset/49
ok 1718 /checksum/SHA512/reset/50
ok 1719 /checksum/SHA512/reset/51
ok 1720 /checksum/SHA512/reset/52
ok 1721 /checksum/SHA512/reset/53
ok 1722 /checksum/SHA512/reset/54
ok 1723 /checksum/SHA512/reset/55
ok 1724 /checksum/SHA512/reset/56
ok 1725 /checksum/SHA512/reset/57
ok 1726 /checksum/SHA512/reset/58
ok 1727 /checksum/SHA512/reset/59
ok 1728 /checksum/SHA512/reset/60
ok 1729 /checksum/SHA512/reset/61
ok 1730 /checksum/SHA512/reset/62
ok 1731 /checksum/SHA512/reset/63
ok 1732 /checksum/SHA512/reset/64
ok 1733 /checksum/SHA512/reset/65
ok 1734 /checksum/SHA512/reset/66
ok 1735 /checksum/SHA512/reset/67
ok 1736 /checksum/SHA512/reset/68
ok 1737 /checksum/SHA512/reset/69
ok 1738 /checksum/SHA512/reset/70
ok 1739 /checksum/SHA512/reset/71
ok 1740 /checksum/SHA512/reset/72
ok 1741 /checksum/SHA512/reset/73
ok 1742 /checksum/SHA512/reset/74
ok 1743 /checksum/SHA512/reset/75
ok 1744 /checksum/SHA512/reset/76
ok 1745 /checksum/SHA512/reset/77
ok 1746 /checksum/SHA512/reset/78
ok 1747 /checksum/SHA512/reset/79
ok 1748 /checksum/SHA512/reset/80
ok 1749 /checksum/SHA512/reset/81
ok 1750 /checksum/SHA512/reset/82
ok 1751 /checksum/SHA512/reset/83
ok 1752 /checksum/SHA512/reset/84
ok 1753 /checksum/SHA512/reset/85
ok 1754 /checksum/SHA512/reset/86
ok 1755 /checksum/SHA512/reset/87
ok 1756 /checksum/SHA512/reset/88
ok 1757 /checksum/SHA512/reset/89
ok 1758 /checksum/SHA512/reset/90
ok 1759 /checksum/SHA512/reset/91
ok 1760 /checksum/SHA512/reset/92
ok 1761 /checksum/SHA512/reset/93
ok 1762 /checksum/SHA512/reset/94
ok 1763 /checksum/SHA512/reset/95
ok 1764 /checksum/SHA512/reset/96
ok 1765 /checksum/SHA512/reset/97
ok 1766 /checksum/SHA512/reset/98
ok 1767 /checksum/SHA512/reset/99
ok 1768 /checksum/SHA512/reset/100
ok 1769 /checksum/SHA512/reset/101
ok 1770 /checksum/SHA512/reset/102
ok 1771 /checksum/SHA512/reset/103
ok 1772 /checksum/SHA512/reset/104
ok 1773 /checksum/SHA512/reset/105
ok 1774 /checksum/SHA512/reset/106
ok 1775 /checksum/SHA512/reset/107
ok 1776 /checksum/SHA512/reset/108
ok 1777 /checksum/SHA512/reset/109
ok 1778 /checksum/SHA512/reset/110
ok 1779 /checksum/SHA512/reset/111
ok 1780 /checksum/SHA512/reset/112
ok 1781 /checksum/SHA512/reset/113
ok 1782 /checksum/SHA512/reset/114
ok 1783 /checksum/SHA512/reset/115
ok 1784 /checksum/SHA512/reset/116
ok 1785 /checksum/SHA512/reset/117
ok 1786 /checksum/SHA512/reset/118
ok 1787 /checksum/SHA512/reset/119
ok 1788 /checksum/SHA512/reset/120
ok 1789 /checksum/SHA512/reset/121
ok 1790 /checksum/SHA512/reset/122
ok 1791 /checksum/SHA512/reset/123
ok 1792 /checksum/SHA512/reset/124
ok 1793 /checksum/SHA512/reset/125
ok 1794 /checksum/SHA512/reset/126
ok 1795 /checksum/SHA512/reset/127
ok 1796 /checksum/SHA512/reset/128
ok 1797 /checksum/SHA512/reset/129
ok 1798 /checksum/SHA512/reset/130
ok 1799 /checksum/SHA512/reset/131
ok 1800 /checksum/SHA512/reset/132
ok 1801 /checksum/SHA512/reset/133
ok 1802 /checksum/SHA512/reset/134
ok 1803 /checksum/SHA512/reset/135
ok 1804 /checksum/SHA512/reset/136
ok 1805 /checksum/SHA512/reset/137
ok 1806 /checksum/SHA512/reset/138
ok 1807 /checksum/SHA512/reset/139
ok 1808 /checksum/SHA512/reset/140
ok 1809 /checksum/SHA512/reset/141
ok 1810 /checksum/SHA512/reset/142
ok 1811 /checksum/SHA512/reset/143
ok 1812 /checksum/SHA512/reset/144
ok 1813 /checksum/SHA512/reset/145
ok 1814 /checksum/SHA512/reset/146
ok 1815 /checksum/SHA512/reset/147
ok 1816 /checksum/SHA512/reset/148
ok 1817 /checksum/SHA512/reset/149
ok 1818 /checksum/SHA512/reset/150
ok 1819 /checksum/SHA512/reset/151
ok 1820 /checksum/SHA512/reset/152
ok 1821 /checksum/SHA512/reset/153
ok 1822 /checksum/SHA512/reset/154
ok 1823 /checksum/SHA512/reset/155
ok 1824 /checksum/SHA512/reset/156
ok 1825 /checksum/SHA512/reset/157
ok 1826 /checksum/SHA512/reset/158
ok 1827 /checksum/SHA512/reset/159
ok 1828 /checksum/SHA512/reset/160
ok 1829 /checksum/SHA512/reset/161
ok 1830 /checksum/SHA512/reset/162
ok 1831 /checksum/SHA512/reset/163
ok 1832 /checksum/SHA512/reset/164
ok 1833 /checksum/SHA512/reset/165
ok 1834 /checksum/SHA512/reset/166
ok 1835 /checksum/SHA512/reset/167
ok 1836 /checksum/SHA512/reset/168
ok 1837 /checksum/SHA512/reset/169
ok 1838 /checksum/SHA512/reset/170
ok 1839 /checksum/SHA512/reset/171
ok 1840 /checksum/SHA512/reset/172
ok 1841 /checksum/SHA512/reset/173
ok 1842 /checksum/SHA512/reset/174
ok 1843 /checksum/SHA512/reset/175
ok 1844 /checksum/SHA512/reset/176
ok 1845 /checksum/SHA512/reset/177
ok 1846 /checksum/SHA512/reset/178
ok 1847 /checksum/SHA512/reset/179
ok 1848 /checksum/SHA512/reset/180
ok 1849 /checksum/SHA512/reset/181
ok 1850 /checksum/SHA512/reset/182
ok 1851 /checksum/SHA512/reset/183
# End of reset tests
# End of SHA512 tests
# End of checksum tests
PASS: glib/checksum.test
Running test: glib/memchunk.test
TAP version 14
# random seed: R02Sfc271118dc81cd101e415db3bb3efb90
1..1
# Start of memchunk tests
ok 1 /memchunk/basic
# End of memchunk tests
PASS: glib/memchunk.test
Running test: glib/simple-proxy.test
TAP version 14
# random seed: R02S35bf2f1412a1fcfd2a129b6d2e3ef312
1..3
# Start of static-proxy tests
ok 1 /static-proxy/uri
ok 2 /static-proxy/socks
ok 3 /static-proxy/ignore
# End of static-proxy tests
PASS: glib/simple-proxy.test
Running test: glib/thread-deprecated.test
TAP version 14
# random seed: R02S2c667f7160f5e94fc6edb3a731e12443
1..6
# Start of thread tests
ok 1 /thread/mutex
ok 2 /thread/static-rec-mutex
Executing: glib/thread-deprecated.test
ok 3 /thread/static-private
# slow test /thread/static-private executed in 4.40 secs
Executing: glib/thread-deprecated.test
ok 4 /thread/static-rw-lock
# slow test /thread/static-rw-lock executed in 5.00 secs
ok 5 /thread/once
Executing: glib/thread-deprecated.test
Executing: glib/thread-deprecated.test
ok 6 /thread/rerun-all
# slow test /thread/rerun-all executed in 10.02 secs
# End of thread tests
PASS: glib/thread-deprecated.test
Running test: glib/notify-init2.test
TAP version 14
# random seed: R02Sf48a19c7f9c60ea2464ff7134068a32b
1..1
# Start of properties tests
# /properties/notify-in-init2 summary: Test that notify freezing during construction of objects with custom constructor works
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2665
ok 1 /properties/notify-in-init2
# End of properties tests
PASS: glib/notify-init2.test
Running test: glib/rand.test
TAP version 14
# random seed: R02Sd3f2ed94db6d2b2a8c0218f7800a19b8
1..2
# Start of rand tests
ok 1 /rand/test-rand
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=502560
ok 2 /rand/double-range
# End of rand tests
PASS: glib/rand.test
Running test: glib/strvbuilder.test
TAP version 14
# random seed: R02Sc1ca16ae4ed14de3861ef8db3ce4c2fa
1..7
# Start of strvbuilder tests
ok 1 /strvbuilder/empty
ok 2 /strvbuilder/add
ok 3 /strvbuilder/addv
ok 4 /strvbuilder/add_many
ok 5 /strvbuilder/take
ok 6 /strvbuilder/ref
ok 7 /strvbuilder/unref_to_strv
# End of strvbuilder tests
PASS: glib/strvbuilder.test
Running test: glib/file-thumbnail.test
TAP version 14
# random seed: R02S8c25eb3cfef804ff0363b657d20ff7ae
1..7
# Start of file-thumbnail tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/fail/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/fail/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/fail/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/fail/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/fail/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/fail/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/fail/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/fail/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/fail/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/fail/.dirs/runtime
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/fail/.dirs/cache/thumbnails/fail/gnome-thumbnail-factory/f098bcae74f8241ee3835bded7284cdd.png
ok 1 /file-thumbnail/fail
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/size-priority/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/size-priority/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/size-priority/.dirs/runtime
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/size-priority/.dirs/cache/thumbnails/fail/gnome-thumbnail-factory/f098bcae74f8241ee3835bded7284cdd.png
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/size-priority/.dirs/cache/thumbnails/normal/f098bcae74f8241ee3835bded7284cdd.png
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/size-priority/.dirs/cache/thumbnails/large/f098bcae74f8241ee3835bded7284cdd.png
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/size-priority/.dirs/cache/thumbnails/x-large/f098bcae74f8241ee3835bded7284cdd.png
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/size-priority/.dirs/cache/thumbnails/xx-large/f098bcae74f8241ee3835bded7284cdd.png
ok 2 /file-thumbnail/size-priority
# Start of valid tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/valid/normal/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/valid/normal/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/runtime
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/valid/normal/.dirs/cache/thumbnails/normal/f098bcae74f8241ee3835bded7284cdd.png
ok 3 /file-thumbnail/valid/normal
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/valid/large/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/valid/large/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/valid/large/.dirs/runtime
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/valid/large/.dirs/cache/thumbnails/large/f098bcae74f8241ee3835bded7284cdd.png
ok 4 /file-thumbnail/valid/large
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/runtime
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/valid/x-large/.dirs/cache/thumbnails/x-large/f098bcae74f8241ee3835bded7284cdd.png
ok 5 /file-thumbnail/valid/x-large
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/runtime
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/valid/xx-large/.dirs/cache/thumbnails/xx-large/f098bcae74f8241ee3835bded7284cdd.png
ok 6 /file-thumbnail/valid/xx-large
# End of valid tests
# Start of unknown tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/system-config1:/var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/system-data1:/var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/runtime
# Created test thumbnail at /var/volatile/tmp/file-thumbnail/unknown/super-large/.dirs/cache/thumbnails/super-large/f098bcae74f8241ee3835bded7284cdd.png
ok 7 /file-thumbnail/unknown/super-large
# End of unknown tests
# End of file-thumbnail tests
PASS: glib/file-thumbnail.test
Running test: glib/macros-c-17.test
TAP version 14
# random seed: R02Saa202116dcae811a5fe64e890562d89c
1..4
# Start of C tests
ok 1 /C/standard-17
# End of C tests
# Start of alignof tests
ok 2 /alignof/fallback
# End of alignof tests
# Start of assert tests
ok 3 /assert/static
# End of assert tests
# Start of struct tests
ok 4 /struct/sizeof_member
# End of struct tests
PASS: glib/macros-c-17.test
Running test: glib/hmac.test
TAP version 14
# random seed: R02Sd6cce50ee7921125256acf1551e35364
1..37
# Start of hmac tests
ok 1 /hmac/sha1-1
ok 2 /hmac/sha1-2
ok 3 /hmac/sha1-3
ok 4 /hmac/sha1-4
ok 5 /hmac/sha1-5
ok 6 /hmac/sha1-6
ok 7 /hmac/sha1-7
ok 8 /hmac/sha256-1
ok 9 /hmac/sha256-2
ok 10 /hmac/sha256-3
ok 11 /hmac/sha256-4
ok 12 /hmac/sha256-5
ok 13 /hmac/sha256-6
ok 14 /hmac/sha384-1
ok 15 /hmac/sha384-2
ok 16 /hmac/sha384-3
ok 17 /hmac/sha384-4
ok 18 /hmac/sha384-5
ok 19 /hmac/sha384-6
ok 20 /hmac/sha512-1
ok 21 /hmac/sha512-2
ok 22 /hmac/sha512-3
ok 23 /hmac/sha512-4
ok 24 /hmac/sha512-5
ok 25 /hmac/sha512-6
ok 26 /hmac/md5-1
ok 27 /hmac/md5-2
ok 28 /hmac/md5-3
ok 29 /hmac/md5-4
ok 30 /hmac/md5-5
ok 31 /hmac/md5-6
ok 32 /hmac/md5-7
ok 33 /hmac/ref-unref
ok 34 /hmac/copy
ok 35 /hmac/for-data
ok 36 /hmac/for-string
ok 37 /hmac/for-bytes
# End of hmac tests
PASS: glib/hmac.test
Running test: glib/custom-dispatch.test
TAP version 14
# random seed: R02Seb044558f5971cb712715748a3295847
1..2
# Start of properties tests
# Start of custom-dispatch tests
# /properties/custom-dispatch/init summary: Test that custom dispatch_properties_changed is called on initialization
ok 1 /properties/custom-dispatch/init
# /properties/custom-dispatch/set summary: Test that custom dispatch_properties_changed is called regardless of connected notify handlers
ok 2 /properties/custom-dispatch/set
# End of custom-dispatch tests
# End of properties tests
PASS: glib/custom-dispatch.test
Running test: glib/cxx-20.test
TAP version 14
# random seed: R02S1714574ccde1e3f746fef80b75ac6e2d
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-20.test
Running test: glib/pollable.test
TAP version 14
# random seed: R02S047e165bf6abbbfe718d3da9cb7bf3a6
1..6
# Start of pollable tests
ok 1 /pollable/converter
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyProxyResolver) for ?gio-proxy-resolver?
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x555e53fe8660 and GSocketClientAsyncConnectData 0x555e53fe4630
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x555e53fed5e0 for GSocketClientAsyncConnectData 0x555e53fe4630
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 2 /pollable/socket
# Start of unix tests
# /pollable/unix/pipe summary: Test that pipes are considered pollable, just like sockets
ok 3 /pollable/unix/pipe
# /pollable/unix/pty summary: Test that PTYs are considered pollable
ok 4 /pollable/unix/pty
# /pollable/unix/file summary: Test that regular files are not considered pollable
ok 5 /pollable/unix/file
# /pollable/unix/nulldev summary: Test that /dev/null is not considered pollable, but only if on a system where we are able to tell it apart from devices that actually implement poll
ok 6 /pollable/unix/nulldev # SKIP Cannot detect /dev/null as non-pollable on this system
# End of unix tests
# End of pollable tests
PASS: glib/pollable.test
Running test: glib/tls-certificate.test
TAP version 14
# random seed: R02S9ed100be41ec15c27724f627fd3dbed0
1..19
# Start of tls-certificate tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation test (GTestTlsBackend) for ?gio-tls-backend?
ok 1 /tls-certificate/pem-parser
ok 2 /tls-certificate/pem-parser-handles-chain
ok 3 /tls-certificate/from_file
ok 4 /tls-certificate/from_files
ok 5 /tls-certificate/from_files_crlf
ok 6 /tls-certificate/from_files_pkcs8
ok 7 /tls-certificate/from_files_pkcs8enc
ok 8 /tls-certificate/list_from_file
ok 9 /tls-certificate/pkcs11-uri
ok 10 /tls-certificate/pkcs11-uri-unsupported
ok 11 /tls-certificate/from_pkcs12
ok 12 /tls-certificate/from_pkcs12_file
ok 13 /tls-certificate/not-valid-before
ok 14 /tls-certificate/not-valid-after
ok 15 /tls-certificate/subject-name
ok 16 /tls-certificate/issuer-name
ok 17 /tls-certificate/dns-names
ok 18 /tls-certificate/ip-addresses
ok 19 /tls-certificate/pem-parser-no-sentinel
# End of tls-certificate tests
PASS: glib/tls-certificate.test
Running test: glib/utils-c-99.test
TAP version 14
# random seed: R02S400c992090cf45f9c18407b0bbf41752
1..41
# Start of utils tests
ok 1 /utils/language-names
ok 2 /utils/locale-variants
ok 3 /utils/version
ok 4 /utils/appname
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/847
# /utils/prgname-thread-safety summary: Test that threads racing to get and set the program name always receive a valid program name.
ok 5 /utils/prgname-thread-safety
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=627969
# /utils/tmpdir summary: Test that g_get_tmp_dir() returns a correct default if TMPDIR is set to the empty string
ok 6 /utils/tmpdir
ok 7 /utils/basic_bits
ok 8 /utils/bits
ok 9 /utils/swap
ok 10 /utils/find-program
ok 11 /utils/find-program-for-path
ok 12 /utils/debug
ok 13 /utils/codeset
ok 14 /utils/codeset2
ok 15 /utils/console-charset
ok 16 /utils/gettext
ok 17 /utils/username
ok 18 /utils/realname
ok 19 /utils/hostname
ok 20 /utils/xdgdirs
ok 21 /utils/specialdir
# NAME: Linux
ok 22 /utils/os-info
ok 23 /utils/clear-pointer
ok 24 /utils/clear-pointer-cast
ok 25 /utils/take-pointer
ok 26 /utils/clear-source
ok 27 /utils/misc-mem
# /utils/aligned-mem summary: Aligned memory allocator
# Alignment must not be zero
# Alignment must be a power of two
# Alignment must be a multiple of sizeof(void*)
ok 28 /utils/aligned-mem
# /utils/free-sized summary: Check that g_free_sized() works
ok 29 /utils/free-sized
ok 30 /utils/nullify
ok 31 /utils/atexit
ok 32 /utils/check-setuid
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663
ok 33 /utils/int-limits
ok 34 /utils/clear-list
ok 35 /utils/clear-slist
ok 36 /utils/steal-handle-id
# Start of specialdir tests
ok 37 /utils/specialdir/desktop
# End of specialdir tests
# Start of clear-pointer tests
ok 38 /utils/clear-pointer/side-effects
# End of clear-pointer tests
# Start of aligned-mem tests
# /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer
ok 39 /utils/aligned-mem/alignment
# /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation
ok 40 /utils/aligned-mem/zeroed
# /utils/aligned-mem/free-sized summary: Check that g_aligned_free_sized() works
ok 41 /utils/aligned-mem/free-sized
# Start of subprocess tests
# End of subprocess tests
# End of aligned-mem tests
# End of utils tests
PASS: glib/utils-c-99.test
Running test: glib/autoptr.test
TAP version 14
# random seed: R02Sed9e041dea10c9aab7da75e7fd587d9b
1..6
# Start of autoptr tests
ok 1 /autoptr/autoptr
ok 2 /autoptr/autoptr_steal
ok 3 /autoptr/autolist
ok 4 /autoptr/autoslist
ok 5 /autoptr/autoqueue
ok 6 /autoptr/autoclass
# End of autoptr tests
PASS: glib/autoptr.test
Running test: glib/objects-refcount2.test
TAP version 14
# random seed: R02S254d5de69e5db2d5747a01b08bdfc300
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x5599cd027b70
# 
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# .
# dispose 0x5599cd027b70!
# 
ok 1 /gobject/refcount/object-advanced
# slow test /gobject/refcount/object-advanced executed in 2.35 secs
# End of refcount tests
# End of gobject tests
PASS: glib/objects-refcount2.test
Running test: glib/thumbnail-verification.test
TAP version 14
# random seed: R02Sd4d3751db687b992d61d4847e2425909
1..1
# Start of png-thumbs tests
ok 1 /png-thumbs/validity
# End of png-thumbs tests
PASS: glib/thumbnail-verification.test
Running test: glib/pattern.test
TAP version 14
# random seed: R02S06d62dd1f290ce77550dcbbdfc8bfa4c
1..90
# Start of pattern tests
# Start of compile tests
ok 1 /pattern/compile/0
ok 2 /pattern/compile/1
ok 3 /pattern/compile/2
ok 4 /pattern/compile/3
ok 5 /pattern/compile/4
ok 6 /pattern/compile/5
ok 7 /pattern/compile/6
ok 8 /pattern/compile/7
ok 9 /pattern/compile/8
ok 10 /pattern/compile/9
ok 11 /pattern/compile/10
ok 12 /pattern/compile/11
ok 13 /pattern/compile/12
ok 14 /pattern/compile/13
# End of compile tests
# Start of copy tests
ok 15 /pattern/copy/0
ok 16 /pattern/copy/1
ok 17 /pattern/copy/2
ok 18 /pattern/copy/3
ok 19 /pattern/copy/4
ok 20 /pattern/copy/5
ok 21 /pattern/copy/6
ok 22 /pattern/copy/7
ok 23 /pattern/copy/8
ok 24 /pattern/copy/9
ok 25 /pattern/copy/10
ok 26 /pattern/copy/11
ok 27 /pattern/copy/12
ok 28 /pattern/copy/13
# End of copy tests
# Start of match tests
ok 29 /pattern/match/0
ok 30 /pattern/match/1
ok 31 /pattern/match/2
ok 32 /pattern/match/3
ok 33 /pattern/match/4
ok 34 /pattern/match/5
ok 35 /pattern/match/6
ok 36 /pattern/match/7
ok 37 /pattern/match/8
ok 38 /pattern/match/9
ok 39 /pattern/match/10
ok 40 /pattern/match/11
ok 41 /pattern/match/12
ok 42 /pattern/match/13
ok 43 /pattern/match/14
ok 44 /pattern/match/15
ok 45 /pattern/match/16
ok 46 /pattern/match/17
ok 47 /pattern/match/18
ok 48 /pattern/match/19
ok 49 /pattern/match/20
ok 50 /pattern/match/21
ok 51 /pattern/match/22
ok 52 /pattern/match/23
ok 53 /pattern/match/24
ok 54 /pattern/match/25
ok 55 /pattern/match/26
ok 56 /pattern/match/27
ok 57 /pattern/match/28
ok 58 /pattern/match/29
ok 59 /pattern/match/30
ok 60 /pattern/match/31
ok 61 /pattern/match/32
ok 62 /pattern/match/33
ok 63 /pattern/match/34
ok 64 /pattern/match/35
ok 65 /pattern/match/36
ok 66 /pattern/match/37
ok 67 /pattern/match/38
ok 68 /pattern/match/39
ok 69 /pattern/match/40
ok 70 /pattern/match/41
ok 71 /pattern/match/42
ok 72 /pattern/match/43
ok 73 /pattern/match/44
ok 74 /pattern/match/45
ok 75 /pattern/match/46
ok 76 /pattern/match/47
ok 77 /pattern/match/48
ok 78 /pattern/match/49
ok 79 /pattern/match/50
# End of match tests
# Start of equal tests
ok 80 /pattern/equal/0
ok 81 /pattern/equal/1
ok 82 /pattern/equal/2
ok 83 /pattern/equal/3
ok 84 /pattern/equal/4
ok 85 /pattern/equal/5
ok 86 /pattern/equal/6
ok 87 /pattern/equal/7
ok 88 /pattern/equal/8
ok 89 /pattern/equal/9
ok 90 /pattern/equal/10
# End of equal tests
# End of pattern tests
PASS: glib/pattern.test
Running test: glib/object.test
TAP version 14
# random seed: R02Saddc058b0d8fd9e951abf56ce7af378f
1..2
# Start of object tests
# Start of constructor tests
ok 1 /object/constructor/singleton
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=661576
ok 2 /object/constructor/infanticide
# End of constructor tests
# End of object tests
PASS: glib/object.test
Running test: glib/properties-refcount3.test
TAP version 14
# random seed: R02Sa534fad7b96538fb3232b1fc164e3326
1..1
# Start of gobject tests
# Start of refcount tests
Executing: glib/properties-refcount3.test
Executing: glib/properties-refcount3.test
Executing: glib/properties-refcount3.test
Executing: glib/properties-refcount3.test
Executing: glib/properties-refcount3.test
Executing: glib/properties-refcount3.test
# 
# stopping
# 
# stopped
# 
# 33194259 348723
# 
ok 1 /gobject/refcount/properties-3
# slow test /gobject/refcount/properties-3 executed in 30.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/properties-refcount3.test
Running test: glib/signals-refcount1.test
TAP version 14
# random seed: R02Sfac55fef2be577c80ecb59275c94db0a
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x565488cb43f0
# 
# init 0x565488cad600
# 
Executing: glib/signals-refcount1.test
# dispose 0x565488cb43f0!
# 
# dispose 0x565488cad600!
# 
ok 1 /gobject/refcount/signals
# slow test /gobject/refcount/signals executed in 5.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/signals-refcount1.test
Running test: glib/glistmodel.test
TAP version 14
# random seed: R02S2620864d1878469ea0fbaa0181565990
1..18
# Start of glistmodel tests
# Start of store tests
ok 1 /glistmodel/store/properties
ok 2 /glistmodel/store/non-gobjects
ok 3 /glistmodel/store/boundaries
ok 4 /glistmodel/store/refcounts
ok 5 /glistmodel/store/sorted
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=795307
ok 6 /glistmodel/store/splice-replace-middle
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=795307
ok 7 /glistmodel/store/splice-replace-all
ok 8 /glistmodel/store/splice-noop
ok 9 /glistmodel/store/splice-remove-multiple
ok 10 /glistmodel/store/splice-add-multiple
ok 11 /glistmodel/store/splice-wrong-type
ok 12 /glistmodel/store/item-type
ok 13 /glistmodel/store/remove-all
ok 14 /glistmodel/store/sort
ok 15 /glistmodel/store/get-item-cache
ok 16 /glistmodel/store/items-changed
ok 17 /glistmodel/store/past-end
ok 18 /glistmodel/store/find
# End of store tests
# End of glistmodel tests
PASS: glib/glistmodel.test
Running test: glib/include.test
TAP version 14
# random seed: R02S8bfbeb84e4e6c65bcf28637b6bdd1608
1..1
# Start of include tests
ok 1 /include/rwlock
# End of include tests
PASS: glib/include.test
Running test: glib/gdbus-sasl.test
TAP version 14
# random seed: R02S489d384777c1b639e15866dd66c807e8
1..1
# Start of gdbus tests
# Start of sasl tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/sasl/server/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/sasl/server/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/sasl/server/.dirs/system-config1:/var/volatile/tmp/gdbus/sasl/server/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/sasl/server/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/sasl/server/.dirs/system-data1:/var/volatile/tmp/gdbus/sasl/server/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/sasl/server/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/sasl/server/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/sasl/server/.dirs/runtime
# New handshake: EXTERNAL with incorrect initial response
# C:?AUTH EXTERNAL 30?
# Expect: /^REJECTED.*$/
# S:?REJECTED EXTERNAL DBUS_COOKIE_SHA1?
# New handshake: EXTERNAL without initial response, failing to authenticate
# C:?AUTH EXTERNAL?
# Expect: /^DATA$/
# S:?DATA?
# C:?DATA 30?
# Expect: /^REJECTED.*$/
# S:?REJECTED EXTERNAL DBUS_COOKIE_SHA1?
# New handshake: EXTERNAL with initial response
# C:?AUTH EXTERNAL 31303030?
# Expect: /^OK [0-9a-f]+$/
# S:?OK 3c539a2ddb2d88f3763ac94467f872a4?
# New handshake: EXTERNAL without initial response
# C:?AUTH EXTERNAL?
# Expect: /^DATA$/
# S:?DATA?
# C:?DATA 31303030?
# Expect: /^OK [0-9a-f]+$/
# S:?OK 3c539a2ddb2d88f3763ac94467f872a4?
# New handshake: EXTERNAL with empty authorization identity
# C:?AUTH EXTERNAL?
# Expect: /^DATA$/
# S:?DATA?
# C:?DATA?
# Expect: /^OK [0-9a-f]+$/
# S:?OK 3c539a2ddb2d88f3763ac94467f872a4?
# New handshake: EXTERNAL with empty authorization identity and whitespace
# C:?AUTH EXTERNAL?
# Expect: /^DATA$/
# S:?DATA?
# C:?DATA ?
# Expect: /^OK [0-9a-f]+$/
# S:?OK 3c539a2ddb2d88f3763ac94467f872a4?
ok 1 /gdbus/sasl/server
# End of sasl tests
# End of gdbus tests
PASS: glib/gdbus-sasl.test
Running test: glib/charset.test
TAP version 14
# random seed: R02S61bb8d34541401901310bac0dce504af
1..2
# Start of charset tests
# Test 0
# Test 1
# Test 2
# Test 3
ok 1 /charset/language_names_with_category
ok 2 /charset/language_names_with_category_async
# End of charset tests
PASS: glib/charset.test
Running test: glib/keyfile.test
TAP version 14
# random seed: R02S74801bf803676ad207433e7f02df4bc6
1..36
# Start of keyfile tests
ok 1 /keyfile/line-ends
ok 2 /keyfile/whitespace
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3047
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/104
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3047
ok 3 /keyfile/comments
ok 4 /keyfile/listing
ok 5 /keyfile/string
ok 6 /keyfile/boolean
ok 7 /keyfile/number
ok 8 /keyfile/locale-string
ok 9 /keyfile/lists
ok 10 /keyfile/lists-set-get
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=165887
ok 11 /keyfile/group-remove
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=165980
ok 12 /keyfile/key-remove
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=316309
ok 13 /keyfile/groups
ok 14 /keyfile/duplicate-keys
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=157877
ok 15 /keyfile/duplicate-groups
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=385910
ok 16 /keyfile/duplicate-groups2
ok 17 /keyfile/group-names
ok 18 /keyfile/key-names
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=420686
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2927
ok 19 /keyfile/reload
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=614864
ok 20 /keyfile/int64
ok 21 /keyfile/load
ok 22 /keyfile/save
ok 23 /keyfile/load-fail
ok 24 /keyfile/non-utf8
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=640695
ok 25 /keyfile/page-boundary
ok 26 /keyfile/ref
ok 27 /keyfile/replace-value
ok 28 /keyfile/list-separator
ok 29 /keyfile/empty-string
ok 30 /keyfile/limbo
# Testing invalid encoding ?non-UTF-8?
# Testing invalid encoding ?UTF?
# Testing invalid encoding ?UTF-9?
ok 31 /keyfile/utf8
ok 32 /keyfile/roundtrip
ok 33 /keyfile/bytes
ok 34 /keyfile/get-locale
ok 35 /keyfile/free-when-not-last-ref
# Start of locale-string tests
# /keyfile/locale-string/multiple-loads summary: Check that loading with translations multiple times works
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2361
ok 36 /keyfile/locale-string/multiple-loads
# End of locale-string tests
# End of keyfile tests
PASS: glib/keyfile.test
Running test: glib/gdbus-peer-object-manager.test
TAP version 14
# random seed: R02S5f1a02d02e26b0c2c5f88bf70effbc80
1..2
# Start of gdbus tests
# Start of peer-object-manager tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-object-manager/normal/.dirs/runtime
ok 1 /gdbus/peer-object-manager/normal
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/system-config1:/var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/system-data1:/var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/peer-object-manager/root/.dirs/runtime
ok 2 /gdbus/peer-object-manager/root
# End of peer-object-manager tests
# End of gdbus tests
PASS: glib/gdbus-peer-object-manager.test
Running test: glib/collate.test
TAP version 14
# random seed: R02S28976b33f2d9f3540e56134ebbbf2c25
1..9
# Start of unicode tests
# Start of collate tests
ok 1 /unicode/collate/0
ok 2 /unicode/collate/1
ok 3 /unicode/collate/2
# End of collate tests
# Start of collate-key tests
ok 4 /unicode/collate-key/0
ok 5 /unicode/collate-key/1
ok 6 /unicode/collate-key/2
# End of collate-key tests
# Start of collate-filename tests
ok 7 /unicode/collate-filename/0
ok 8 /unicode/collate-filename/1
ok 9 /unicode/collate-filename/2
# End of collate-filename tests
# End of unicode tests
PASS: glib/collate.test
Running test: glib/file.test
TAP version 14
# random seed: R02S1a9f7439e34d8cfaf1d83e34cedba10d
1..55
# Start of file tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/basic/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/basic/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/basic/.dirs/system-config1:/var/volatile/tmp/file/basic/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/basic/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/basic/.dirs/system-data1:/var/volatile/tmp/file/basic/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/basic/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/basic/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/basic/.dirs/runtime
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /file/basic
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/build-filename/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/build-filename/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/build-filename/.dirs/system-config1:/var/volatile/tmp/file/build-filename/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/build-filename/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/build-filename/.dirs/system-data1:/var/volatile/tmp/file/build-filename/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/build-filename/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/build-filename/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/build-filename/.dirs/runtime
ok 2 /file/build-filename
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/build-filenamev/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/build-filenamev/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/build-filenamev/.dirs/system-config1:/var/volatile/tmp/file/build-filenamev/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/build-filenamev/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/build-filenamev/.dirs/system-data1:/var/volatile/tmp/file/build-filenamev/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/build-filenamev/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/build-filenamev/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/build-filenamev/.dirs/runtime
ok 3 /file/build-filenamev
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/parent/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/parent/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/parent/.dirs/system-config1:/var/volatile/tmp/file/parent/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/parent/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/parent/.dirs/system-data1:/var/volatile/tmp/file/parent/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/parent/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/parent/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/parent/.dirs/runtime
ok 4 /file/parent
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/child/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/child/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/child/.dirs/system-config1:/var/volatile/tmp/file/child/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/child/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/child/.dirs/system-data1:/var/volatile/tmp/file/child/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/child/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/child/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/child/.dirs/runtime
ok 5 /file/child
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/empty-path/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/empty-path/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/empty-path/.dirs/system-config1:/var/volatile/tmp/file/empty-path/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/empty-path/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/empty-path/.dirs/system-data1:/var/volatile/tmp/file/empty-path/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/empty-path/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/empty-path/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/empty-path/.dirs/runtime
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2328
# /file/empty-path summary: Check that creating a file with an empty path results in errors
ok 6 /file/empty-path
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/type/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/type/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/type/.dirs/system-config1:/var/volatile/tmp/file/type/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/type/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/type/.dirs/system-data1:/var/volatile/tmp/file/type/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/type/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/type/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/type/.dirs/runtime
ok 7 /file/type
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/parse-name/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/parse-name/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/parse-name/.dirs/system-config1:/var/volatile/tmp/file/parse-name/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/parse-name/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/parse-name/.dirs/system-data1:/var/volatile/tmp/file/parse-name/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/parse-name/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/parse-name/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/parse-name/.dirs/runtime
ok 8 /file/parse-name
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/replace-load/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/replace-load/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/replace-load/.dirs/system-config1:/var/volatile/tmp/file/replace-load/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/replace-load/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/replace-load/.dirs/system-data1:/var/volatile/tmp/file/replace-load/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/replace-load/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/replace-load/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/replace-load/.dirs/runtime
ok 9 /file/replace-load
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/replace-cancel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/replace-cancel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/replace-cancel/.dirs/system-config1:/var/volatile/tmp/file/replace-cancel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/replace-cancel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/replace-cancel/.dirs/system-data1:/var/volatile/tmp/file/replace-cancel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/replace-cancel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/replace-cancel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/replace-cancel/.dirs/runtime
# Bug Reference: https://bugzilla.gnome.org/629301
ok 10 /file/replace-cancel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/replace-symlink/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/replace-symlink/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/replace-symlink/.dirs/system-config1:/var/volatile/tmp/file/replace-symlink/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/replace-symlink/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/replace-symlink/.dirs/system-data1:/var/volatile/tmp/file/replace-symlink/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/replace-symlink/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/replace-symlink/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/replace-symlink/.dirs/runtime
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2325
# /file/replace-symlink summary: Test that G_FILE_CREATE_REPLACE_DESTINATION doesn?t follow symlinks
# Using temporary directory /var/volatile/tmp/g_file_replace_symlink_FBF342
ok 11 /file/replace-symlink
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-new-tmp/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-new-tmp/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-new-tmp/.dirs/system-config1:/var/volatile/tmp/file/async-new-tmp/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-new-tmp/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-new-tmp/.dirs/system-data1:/var/volatile/tmp/file/async-new-tmp/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-new-tmp/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-new-tmp/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-new-tmp/.dirs/runtime
ok 12 /file/async-new-tmp
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/system-config1:/var/volatile/tmp/file/async-new-tmp-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/system-data1:/var/volatile/tmp/file/async-new-tmp-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-new-tmp-dir/.dirs/runtime
ok 13 /file/async-new-tmp-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-delete/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-delete/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-delete/.dirs/system-config1:/var/volatile/tmp/file/async-delete/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-delete/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-delete/.dirs/system-data1:/var/volatile/tmp/file/async-delete/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-delete/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-delete/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-delete/.dirs/runtime
ok 14 /file/async-delete
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-make-symlink/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-make-symlink/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-make-symlink/.dirs/system-config1:/var/volatile/tmp/file/async-make-symlink/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-make-symlink/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-make-symlink/.dirs/system-data1:/var/volatile/tmp/file/async-make-symlink/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-make-symlink/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-make-symlink/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-make-symlink/.dirs/runtime
ok 15 /file/async-make-symlink
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/copy-preserve-mode/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/copy-preserve-mode/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/copy-preserve-mode/.dirs/system-config1:/var/volatile/tmp/file/copy-preserve-mode/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/copy-preserve-mode/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/copy-preserve-mode/.dirs/system-data1:/var/volatile/tmp/file/copy-preserve-mode/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/copy-preserve-mode/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/copy-preserve-mode/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/copy-preserve-mode/.dirs/runtime
# Current umask: 18
# Vector 0
# Vector 1
# Vector 2
# Vector 3
# Vector 4
# Vector 5
# Vector 6
# Vector 7
# Vector 8
# Vector 9
# Vector 10
ok 16 /file/copy-preserve-mode
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/copy-async-with-closures/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/copy-async-with-closures/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/copy-async-with-closures/.dirs/system-config1:/var/volatile/tmp/file/copy-async-with-closures/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/copy-async-with-closures/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/copy-async-with-closures/.dirs/system-data1:/var/volatile/tmp/file/copy-async-with-closures/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/copy-async-with-closures/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/copy-async-with-closures/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/copy-async-with-closures/.dirs/runtime
ok 17 /file/copy-async-with-closures
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/measure/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/measure/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/measure/.dirs/system-config1:/var/volatile/tmp/file/measure/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/measure/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/measure/.dirs/system-data1:/var/volatile/tmp/file/measure/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/measure/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/measure/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/measure/.dirs/runtime
ok 18 /file/measure
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/measure-async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/measure-async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/measure-async/.dirs/system-config1:/var/volatile/tmp/file/measure-async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/measure-async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/measure-async/.dirs/system-data1:/var/volatile/tmp/file/measure-async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/measure-async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/measure-async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/measure-async/.dirs/runtime
ok 19 /file/measure-async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/load-bytes/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/load-bytes/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/load-bytes/.dirs/system-config1:/var/volatile/tmp/file/load-bytes/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/load-bytes/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/load-bytes/.dirs/system-data1:/var/volatile/tmp/file/load-bytes/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/load-bytes/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/load-bytes/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/load-bytes/.dirs/runtime
ok 20 /file/load-bytes
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/load-bytes-async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/load-bytes-async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/load-bytes-async/.dirs/system-config1:/var/volatile/tmp/file/load-bytes-async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/load-bytes-async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/load-bytes-async/.dirs/system-data1:/var/volatile/tmp/file/load-bytes-async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/load-bytes-async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/load-bytes-async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/load-bytes-async/.dirs/runtime
ok 21 /file/load-bytes-async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/load-bytes-4gb/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/load-bytes-4gb/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/load-bytes-4gb/.dirs/system-config1:/var/volatile/tmp/file/load-bytes-4gb/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/load-bytes-4gb/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/load-bytes-4gb/.dirs/system-data1:/var/volatile/tmp/file/load-bytes-4gb/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/load-bytes-4gb/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/load-bytes-4gb/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/load-bytes-4gb/.dirs/runtime
ok 22 /file/load-bytes-4gb # SKIP Skipping slow >4GB file test
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/load-contents-4gb/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/load-contents-4gb/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/load-contents-4gb/.dirs/system-config1:/var/volatile/tmp/file/load-contents-4gb/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/load-contents-4gb/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/load-contents-4gb/.dirs/system-data1:/var/volatile/tmp/file/load-contents-4gb/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/load-contents-4gb/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/load-contents-4gb/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/load-contents-4gb/.dirs/runtime
ok 23 /file/load-contents-4gb # SKIP Skipping slow >4GB file test
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/system-config1:/var/volatile/tmp/file/load-contents-4gb-async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/system-data1:/var/volatile/tmp/file/load-contents-4gb-async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/load-contents-4gb-async/.dirs/runtime
ok 24 /file/load-contents-4gb-async # SKIP Skipping slow >4GB file test
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/.dirs/system-config1:/var/volatile/tmp/file/writev/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/.dirs/system-data1:/var/volatile/tmp/file/writev/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/.dirs/runtime
ok 25 /file/writev
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/system-config1:/var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/system-data1:/var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/build-attribute-list-for-copy/.dirs/runtime
# Attributes for copy: standard::size,time::modified,time::modified-nsec,time::modified-usec,unix::mode,xattr::*
# Attributes for copy: standard::size,time::modified,time::modified-nsec,time::modified-usec,xattr::*
# Attributes for copy: standard::size,time::access,time::access-nsec,time::access-usec,time::modified,time::modified-nsec,time::modified-usec,unix::gid,unix::mode,unix::uid,xattr::*,xattr-sys::*
# Attributes for copy: standard::size,time::access,time::access-nsec,time::access-usec,time::modified,time::modified-nsec,time::modified-usec,unix::gid,unix::uid,xattr::*,xattr-sys::*
# Attributes for copy: standard::size,time::access,time::access-nsec,time::access-usec,unix::gid,unix::mode,unix::uid,xattr::*,xattr-sys::*
# Attributes for copy: standard::size,xattr::*
# Attributes for copy: standard::size,unix::mode,xattr::*
ok 26 /file/build-attribute-list-for-copy
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/move_async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/move_async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/move_async/.dirs/system-config1:/var/volatile/tmp/file/move_async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/move_async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/move_async/.dirs/system-data1:/var/volatile/tmp/file/move_async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/move_async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/move_async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/move_async/.dirs/runtime
ok 27 /file/move_async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/move-async-with-closures/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/move-async-with-closures/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/move-async-with-closures/.dirs/system-config1:/var/volatile/tmp/file/move-async-with-closures/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/move-async-with-closures/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/move-async-with-closures/.dirs/system-data1:/var/volatile/tmp/file/move-async-with-closures/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/move-async-with-closures/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/move-async-with-closures/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/move-async-with-closures/.dirs/runtime
ok 28 /file/move-async-with-closures
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/system-config1:/var/volatile/tmp/file/query-zero-length-content-type/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/system-data1:/var/volatile/tmp/file/query-zero-length-content-type/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/query-zero-length-content-type/.dirs/runtime
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=755795
# /file/query-zero-length-content-type summary: empty files should always be considered application/x-zerosize
ok 29 /file/query-zero-length-content-type
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/query-default-handler-file/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/query-default-handler-file/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/query-default-handler-file/.dirs/system-config1:/var/volatile/tmp/file/query-default-handler-file/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/query-default-handler-file/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/query-default-handler-file/.dirs/system-data1:/var/volatile/tmp/file/query-default-handler-file/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/query-default-handler-file/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/query-default-handler-file/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/query-default-handler-file/.dirs/runtime
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file/.dirs/data/applications
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file/.dirs/config
ok 30 /file/query-default-handler-file
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/system-config1:/var/volatile/tmp/file/query-default-handler-file-async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/system-data1:/var/volatile/tmp/file/query-default-handler-file-async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/runtime
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file-async/.dirs/data/applications
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file-async/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/file/query-default-handler-file/.dirs/config to /var/volatile/tmp/file/query-default-handler-file-async/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file-async/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-file-async/.dirs/config
ok 31 /file/query-default-handler-file-async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/query-default-handler-uri/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/query-default-handler-uri/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/query-default-handler-uri/.dirs/system-config1:/var/volatile/tmp/file/query-default-handler-uri/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/query-default-handler-uri/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/query-default-handler-uri/.dirs/system-data1:/var/volatile/tmp/file/query-default-handler-uri/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/query-default-handler-uri/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/query-default-handler-uri/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/query-default-handler-uri/.dirs/runtime
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri/.dirs/data/applications
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/file/query-default-handler-file-async/.dirs/config to /var/volatile/tmp/file/query-default-handler-uri/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri/.dirs/config
ok 32 /file/query-default-handler-uri
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/system-config1:/var/volatile/tmp/file/query-default-handler-uri-async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/system-data1:/var/volatile/tmp/file/query-default-handler-uri-async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/runtime
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/data/applications
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/file/query-default-handler-uri/.dirs/config to /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/file/query-default-handler-uri-async/.dirs/config
ok 33 /file/query-default-handler-uri-async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/enumerator-cancellation/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/enumerator-cancellation/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/enumerator-cancellation/.dirs/system-config1:/var/volatile/tmp/file/enumerator-cancellation/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/enumerator-cancellation/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/enumerator-cancellation/.dirs/system-data1:/var/volatile/tmp/file/enumerator-cancellation/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/enumerator-cancellation/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/enumerator-cancellation/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/enumerator-cancellation/.dirs/runtime
ok 34 /file/enumerator-cancellation
# Start of async-create-delete tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-create-delete/0/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-create-delete/0/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-create-delete/0/.dirs/system-config1:/var/volatile/tmp/file/async-create-delete/0/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-create-delete/0/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-create-delete/0/.dirs/system-data1:/var/volatile/tmp/file/async-create-delete/0/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-create-delete/0/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-create-delete/0/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-create-delete/0/.dirs/runtime
ok 35 /file/async-create-delete/0
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-create-delete/1/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-create-delete/1/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-create-delete/1/.dirs/system-config1:/var/volatile/tmp/file/async-create-delete/1/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-create-delete/1/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-create-delete/1/.dirs/system-data1:/var/volatile/tmp/file/async-create-delete/1/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-create-delete/1/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-create-delete/1/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-create-delete/1/.dirs/runtime
ok 36 /file/async-create-delete/1
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-create-delete/10/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-create-delete/10/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-create-delete/10/.dirs/system-config1:/var/volatile/tmp/file/async-create-delete/10/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-create-delete/10/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-create-delete/10/.dirs/system-data1:/var/volatile/tmp/file/async-create-delete/10/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-create-delete/10/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-create-delete/10/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-create-delete/10/.dirs/runtime
Executing: glib/file.test
ok 37 /file/async-create-delete/10
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-create-delete/25/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-create-delete/25/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-create-delete/25/.dirs/system-config1:/var/volatile/tmp/file/async-create-delete/25/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-create-delete/25/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-create-delete/25/.dirs/system-data1:/var/volatile/tmp/file/async-create-delete/25/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-create-delete/25/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-create-delete/25/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-create-delete/25/.dirs/runtime
ok 38 /file/async-create-delete/25
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/async-create-delete/4096/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/async-create-delete/4096/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/async-create-delete/4096/.dirs/system-config1:/var/volatile/tmp/file/async-create-delete/4096/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/async-create-delete/4096/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/async-create-delete/4096/.dirs/system-data1:/var/volatile/tmp/file/async-create-delete/4096/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/async-create-delete/4096/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/async-create-delete/4096/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/async-create-delete/4096/.dirs/runtime
ok 39 /file/async-create-delete/4096
# End of async-create-delete tests
# Start of replace-symlink tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/system-config1:/var/volatile/tmp/file/replace-symlink/using-etag/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/system-data1:/var/volatile/tmp/file/replace-symlink/using-etag/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/replace-symlink/using-etag/.dirs/runtime
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2417
# /file/replace-symlink/using-etag summary: Test that ETag checks work when replacing a file through a symlink
# Using temporary directory /var/volatile/tmp/g_file_replace_symlink_using_etag_OA6N42
ok 40 /file/replace-symlink/using-etag
# slow test /file/replace-symlink/using-etag executed in 2.00 secs
# End of replace-symlink tests
# Start of replace tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/replace/write-only/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/replace/write-only/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/replace/write-only/.dirs/system-config1:/var/volatile/tmp/file/replace/write-only/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/replace/write-only/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/replace/write-only/.dirs/system-data1:/var/volatile/tmp/file/replace/write-only/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/replace/write-only/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/replace/write-only/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/replace/write-only/.dirs/runtime
# /file/replace/write-only summary: Test various situations for g_file_replace()
# Current umask: 18
# Test 0, using temporary directory /var/volatile/tmp/g_file_replace_5Z6N42
# Test 1, using temporary directory /var/volatile/tmp/g_file_replace_EW6N42
# Test 2, using temporary directory /var/volatile/tmp/g_file_replace_E96N42
# Test 3, using temporary directory /var/volatile/tmp/g_file_replace_L66N42
# Test 4, using temporary directory /var/volatile/tmp/g_file_replace_W97N42
# Test 5, using temporary directory /var/volatile/tmp/g_file_replace_Q37N42
# Test 6, using temporary directory /var/volatile/tmp/g_file_replace_BE8N42
# Test 7, using temporary directory /var/volatile/tmp/g_file_replace_JA8N42
# Test 8, using temporary directory /var/volatile/tmp/g_file_replace_0T7N42
# Test 9, using temporary directory /var/volatile/tmp/g_file_replace_NV7N42
# Test 10, using temporary directory /var/volatile/tmp/g_file_replace_5R7N42
# Test 11, using temporary directory /var/volatile/tmp/g_file_replace_M07N42
# Test 12, using temporary directory /var/volatile/tmp/g_file_replace_HX7N42
# Test 13, using temporary directory /var/volatile/tmp/g_file_replace_0Y7N42
# Test 14, using temporary directory /var/volatile/tmp/g_file_replace_Y18N42
# Test 15, using temporary directory /var/volatile/tmp/g_file_replace_CY8N42
# Test 16, using temporary directory /var/volatile/tmp/g_file_replace_T88N42
# Test 17, using temporary directory /var/volatile/tmp/g_file_replace_L68N42
# Test 18, using temporary directory /var/volatile/tmp/g_file_replace_FO8N42
# Test 19, using temporary directory /var/volatile/tmp/g_file_replace_BI8N42
# Test 20, using temporary directory /var/volatile/tmp/g_file_replace_5T8N42
# Test 21, using temporary directory /var/volatile/tmp/g_file_replace_NV8N42
# Test 22, using temporary directory /var/volatile/tmp/g_file_replace_QI3N42
# Test 23, using temporary directory /var/volatile/tmp/g_file_replace_GK3N42
# Test 24, using temporary directory /var/volatile/tmp/g_file_replace_JG3N42
# Test 25, using temporary directory /var/volatile/tmp/g_file_replace_5O3N42
# Test 26, using temporary directory /var/volatile/tmp/g_file_replace_BL3N42
# Test 27, using temporary directory /var/volatile/tmp/g_file_replace_I42N42
# Test 28, using temporary directory /var/volatile/tmp/g_file_replace_P52N42
# Test 29, using temporary directory /var/volatile/tmp/g_file_replace_212N42
# Test 30, using temporary directory /var/volatile/tmp/g_file_replace_MD3N42
# Test 31, using temporary directory /var/volatile/tmp/g_file_replace_0C3N42
# Test 32, using temporary directory /var/volatile/tmp/g_file_replace_982N42
# Test 33, using temporary directory /var/volatile/tmp/g_file_replace_8A4N42
# Test 34, using temporary directory /var/volatile/tmp/g_file_replace_3C4N42
# Test 35, using temporary directory /var/volatile/tmp/g_file_replace_S93N42
# Test 36, using temporary directory /var/volatile/tmp/g_file_replace_HJ4N42
# Test 37, using temporary directory /var/volatile/tmp/g_file_replace_HF4N42
# Test 38, using temporary directory /var/volatile/tmp/g_file_replace_QH4N42
# Test 39, using temporary directory /var/volatile/tmp/g_file_replace_4W3N42
# Test 40, using temporary directory /var/volatile/tmp/g_file_replace_AU3N42
# Test 41, using temporary directory /var/volatile/tmp/g_file_replace_LW3N42
# Test 42, using temporary directory /var/volatile/tmp/g_file_replace_N43N42
# Test 43, using temporary directory /var/volatile/tmp/g_file_replace_613N42
# Test 44, using temporary directory /var/volatile/tmp/g_file_replace_G33N42
# Test 45, using temporary directory /var/volatile/tmp/g_file_replace_L44N42
# Test 46, using temporary directory /var/volatile/tmp/g_file_replace_M64N42
# Test 47, using temporary directory /var/volatile/tmp/g_file_replace_504N42
# Test 48, using temporary directory /var/volatile/tmp/g_file_replace_A34N42
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 41 /file/replace/write-only
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/replace/read-write/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/replace/read-write/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/replace/read-write/.dirs/system-config1:/var/volatile/tmp/file/replace/read-write/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/replace/read-write/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/replace/read-write/.dirs/system-data1:/var/volatile/tmp/file/replace/read-write/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/replace/read-write/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/replace/read-write/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/replace/read-write/.dirs/runtime
# /file/replace/read-write summary: Test various situations for g_file_replace()
# Current umask: 18
# Test 0, using temporary directory /var/volatile/tmp/g_file_replace_474N42
# Test 1, using temporary directory /var/volatile/tmp/g_file_replace_Z94N42
# Test 2, using temporary directory /var/volatile/tmp/g_file_replace_US4N42
# Test 3, using temporary directory /var/volatile/tmp/g_file_replace_WM4N42
# Test 4, using temporary directory /var/volatile/tmp/g_file_replace_PO4N42
# Test 5, using temporary directory /var/volatile/tmp/g_file_replace_IX4N42
# Test 6, using temporary directory /var/volatile/tmp/g_file_replace_HV4N42
# Test 7, using temporary directory /var/volatile/tmp/g_file_replace_QW4N42
# Test 8, using temporary directory /var/volatile/tmp/g_file_replace_C05N42
# Test 9, using temporary directory /var/volatile/tmp/g_file_replace_SZ5N42
# Test 10, using temporary directory /var/volatile/tmp/g_file_replace_DX5N42
# Test 11, using temporary directory /var/volatile/tmp/g_file_replace_645N42
# Test 12, using temporary directory /var/volatile/tmp/g_file_replace_065N42
# Test 13, using temporary directory /var/volatile/tmp/g_file_replace_215N42
# Test 14, using temporary directory /var/volatile/tmp/g_file_replace_YK5N42
# Test 15, using temporary directory /var/volatile/tmp/g_file_replace_6L5N42
# Test 16, using temporary directory /var/volatile/tmp/g_file_replace_4I5N42
# Test 17, using temporary directory /var/volatile/tmp/g_file_replace_0Q5N42
# Test 18, using temporary directory /var/volatile/tmp/g_file_replace_UO5N42
# Test 19, using temporary directory /var/volatile/tmp/g_file_replace_DP5N42
# Test 20, using temporary directory /var/volatile/tmp/g_file_replace_0F0N42
# Test 21, using temporary directory /var/volatile/tmp/g_file_replace_SC0N42
# Test 22, using temporary directory /var/volatile/tmp/g_file_replace_7D0N42
# Test 23, using temporary directory /var/volatile/tmp/g_file_replace_0M0N42
# Test 24, using temporary directory /var/volatile/tmp/g_file_replace_7J0N42
# Test 25, using temporary directory /var/volatile/tmp/g_file_replace_XK0N42
# Test 26, using temporary directory /var/volatile/tmp/g_file_replace_F1ZN42
# Test 27, using temporary directory /var/volatile/tmp/g_file_replace_O3ZN42
# Test 28, using temporary directory /var/volatile/tmp/g_file_replace_U0ZN42
# Test 29, using temporary directory /var/volatile/tmp/g_file_replace_HA0N42
# Test 30, using temporary directory /var/volatile/tmp/g_file_replace_DB0N42
# Test 31, using temporary directory /var/volatile/tmp/g_file_replace_U5ZN42
# Test 32, using temporary directory /var/volatile/tmp/g_file_replace_O90N42
# Test 33, using temporary directory /var/volatile/tmp/g_file_replace_SA1N42
# Test 34, using temporary directory /var/volatile/tmp/g_file_replace_J50N42
# Test 35, using temporary directory /var/volatile/tmp/g_file_replace_A70N42
# Test 36, using temporary directory /var/volatile/tmp/g_file_replace_RI1N42
# Test 37, using temporary directory /var/volatile/tmp/g_file_replace_KC1N42
# Test 38, using temporary directory /var/volatile/tmp/g_file_replace_VE1N42
# Test 39, using temporary directory /var/volatile/tmp/g_file_replace_8X0N42
# Test 40, using temporary directory /var/volatile/tmp/g_file_replace_ZR0N42
# Test 41, using temporary directory /var/volatile/tmp/g_file_replace_N50N42
# Test 42, using temporary directory /var/volatile/tmp/g_file_replace_B10N42
# Test 43, using temporary directory /var/volatile/tmp/g_file_replace_WZ1N42
# Test 44, using temporary directory /var/volatile/tmp/g_file_replace_N91N42
# Test 45, using temporary directory /var/volatile/tmp/g_file_replace_C71N42
# Test 46, using temporary directory /var/volatile/tmp/g_file_replace_5N1N42
# Test 47, using temporary directory /var/volatile/tmp/g_file_replace_EL1N42
# Test 48, using temporary directory /var/volatile/tmp/g_file_replace_IV1N42
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 42 /file/replace/read-write
# End of replace tests
# Start of copy tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/copy/progress/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/copy/progress/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/copy/progress/.dirs/system-config1:/var/volatile/tmp/file/copy/progress/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/copy/progress/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/copy/progress/.dirs/system-data1:/var/volatile/tmp/file/copy/progress/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/copy/progress/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/copy/progress/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/copy/progress/.dirs/runtime
ok 43 /file/copy/progress
# End of copy tests
# Start of writev tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/system-config1:/var/volatile/tmp/file/writev/no-bytes-written/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/system-data1:/var/volatile/tmp/file/writev/no-bytes-written/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/no-bytes-written/.dirs/runtime
ok 44 /file/writev/no-bytes-written
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/no-vectors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/no-vectors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/no-vectors/.dirs/system-config1:/var/volatile/tmp/file/writev/no-vectors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/no-vectors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/no-vectors/.dirs/system-data1:/var/volatile/tmp/file/writev/no-vectors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/no-vectors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/no-vectors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/no-vectors/.dirs/runtime
ok 45 /file/writev/no-vectors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/empty-vectors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/empty-vectors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/empty-vectors/.dirs/system-config1:/var/volatile/tmp/file/writev/empty-vectors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/empty-vectors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/empty-vectors/.dirs/system-data1:/var/volatile/tmp/file/writev/empty-vectors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/empty-vectors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/empty-vectors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/empty-vectors/.dirs/runtime
ok 46 /file/writev/empty-vectors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/system-config1:/var/volatile/tmp/file/writev/too-big-vectors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/system-data1:/var/volatile/tmp/file/writev/too-big-vectors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/too-big-vectors/.dirs/runtime
ok 47 /file/writev/too-big-vectors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/async/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/async/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/async/.dirs/system-config1:/var/volatile/tmp/file/writev/async/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/async/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/async/.dirs/system-data1:/var/volatile/tmp/file/writev/async/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/async/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/async/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/async/.dirs/runtime
ok 48 /file/writev/async
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/async_all/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/async_all/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/async_all/.dirs/system-config1:/var/volatile/tmp/file/writev/async_all/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/async_all/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/async_all/.dirs/system-data1:/var/volatile/tmp/file/writev/async_all/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/async_all/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/async_all/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/async_all/.dirs/runtime
ok 49 /file/writev/async_all
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/system-config1:/var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/system-data1:/var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/async_all-empty-vectors/.dirs/runtime
ok 50 /file/writev/async_all-empty-vectors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/system-config1:/var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/system-data1:/var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/async_all-no-vectors/.dirs/runtime
ok 51 /file/writev/async_all-no-vectors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/system-config1:/var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/system-data1:/var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/async_all-to-big-vectors/.dirs/runtime
ok 52 /file/writev/async_all-to-big-vectors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/system-config1:/var/volatile/tmp/file/writev/async_all-cancellation/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/system-data1:/var/volatile/tmp/file/writev/async_all-cancellation/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/writev/async_all-cancellation/.dirs/runtime
ok 53 /file/writev/async_all-cancellation
# End of writev tests
# Start of from-uri tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/system-config1:/var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/system-data1:/var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/from-uri/ignores-query-string/.dirs/runtime
ok 54 /file/from-uri/ignores-query-string
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/system-config1:/var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/system-data1:/var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/file/from-uri/ignores-fragment/.dirs/runtime
ok 55 /file/from-uri/ignores-fragment
# End of from-uri tests
# End of file tests
PASS: glib/file.test
Running test: glib/flags.test
TAP version 14
# random seed: R02Sf4134d80f503fc833d1b08dd9f175341
1..1
# Start of gobject tests
# Start of flags tests
ok 1 /gobject/flags/validate
# End of flags tests
# End of gobject tests
PASS: glib/flags.test
Running test: glib/closure-refcount.test
TAP version 14
# random seed: R02S151df7032b51a2b2867941257b6a58f9
1..1
# Start of closure tests
# Init 0x55fda6c3e380
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread2
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread1
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread2
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread1
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread2
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread1
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread2
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread1
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread2
# Yielding from main thread
# Yielding from main thread
# Yielding from thread1
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from thread1
# Yielding from thread2
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Yielding from main thread
# Stopping
# Stopped
ok 1 /closure/refcount
# slow test /closure/refcount executed in 1.13 secs
# End of closure tests
PASS: glib/closure-refcount.test
Running test: glib/completion.test
TAP version 14
# random seed: R02Sc55e74e1873fe7f477619b1b8a149d1b
1..1
# Start of completion tests
ok 1 /completion/test-completion
# End of completion tests
PASS: glib/completion.test
Running test: glib/gobject-private.test
TAP version 14
# random seed: R02S30c04549fc7e14040a826a74ceddb4c5
1..3
# Start of private tests
ok 1 /private/instance
ok 2 /private/derived-instance
ok 3 /private/mixed-derived-instance
# End of private tests
PASS: glib/gobject-private.test
Running test: glib/basic-signals.test
TAP version 14
# random seed: R02S84014d378d2360f869736892f2b2dc98
1..1
# Start of gobject tests
ok 1 /gobject/basic-signals
# End of gobject tests
PASS: glib/basic-signals.test
Running test: glib/gdbus-message.test
TAP version 14
# random seed: R02Sdc8a4594f4929a417faf8d42d8ce477e
1..3
# Start of gdbus tests
# Start of message tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/message/lock/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/message/lock/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/message/lock/.dirs/system-config1:/var/volatile/tmp/gdbus/message/lock/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/message/lock/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/message/lock/.dirs/system-data1:/var/volatile/tmp/gdbus/message/lock/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/message/lock/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/message/lock/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/message/lock/.dirs/runtime
ok 1 /gdbus/message/lock
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/message/copy/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/message/copy/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/message/copy/.dirs/system-config1:/var/volatile/tmp/gdbus/message/copy/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/message/copy/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/message/copy/.dirs/system-data1:/var/volatile/tmp/gdbus/message/copy/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/message/copy/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/message/copy/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/message/copy/.dirs/runtime
ok 2 /gdbus/message/copy
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/system-config1:/var/volatile/tmp/gdbus/message/bytes-needed/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/system-data1:/var/volatile/tmp/gdbus/message/bytes-needed/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/message/bytes-needed/.dirs/runtime
# Vector: 0
# Vector: 1
# Vector: 2
# Vector: 3
# Vector: 4
# Vector: 5
ok 3 /gdbus/message/bytes-needed
# End of message tests
# End of gdbus tests
PASS: glib/gdbus-message.test
Running test: glib/array-test.test
TAP version 14
# random seed: R02S1b189f35df14cbb5eba00d1fb6730cf2
1..113
# Start of array tests
ok 1 /array/ref-count
ok 2 /array/steal
ok 3 /array/clear-func
ok 4 /array/binary-search
# /array/copy-sized summary: Test that copying a newly-allocated sized array works.
ok 5 /array/copy-sized
ok 6 /array/overflow-append-vals
ok 7 /array/overflow-set-size
# Start of new tests
ok 8 /array/new/zero-terminated
ok 9 /array/new/take
ok 10 /array/new/take-zero-terminated
# Start of take tests
ok 11 /array/new/take/empty
ok 12 /array/new/take/overflow # SKIP Overflow test requires UINT_WIDTH > SIZE_WIDTH.
# End of take tests
# End of new tests
# Start of set-size tests
ok 13 /array/set-size/non-zero-terminated-no-clear
ok 14 /array/set-size/non-zero-terminated-clear
ok 15 /array/set-size/zero-terminated-no-clear
ok 16 /array/set-size/zero-terminated-clear
# Start of sized tests
ok 17 /array/set-size/sized/non-zero-terminated-no-clear
ok 18 /array/set-size/sized/non-zero-terminated-clear
ok 19 /array/set-size/sized/zero-terminated-no-clear
ok 20 /array/set-size/sized/zero-terminated-clear
# End of sized tests
# End of set-size tests
# Start of append-val tests
ok 21 /array/append-val/non-zero-terminated-no-clear
ok 22 /array/append-val/non-zero-terminated-clear
ok 23 /array/append-val/zero-terminated-no-clear
ok 24 /array/append-val/zero-terminated-clear
# End of append-val tests
# Start of prepend-val tests
ok 25 /array/prepend-val/non-zero-terminated-no-clear
ok 26 /array/prepend-val/non-zero-terminated-clear
ok 27 /array/prepend-val/zero-terminated-no-clear
ok 28 /array/prepend-val/zero-terminated-clear
# End of prepend-val tests
# Start of prepend-vals tests
ok 29 /array/prepend-vals/non-zero-terminated-no-clear
ok 30 /array/prepend-vals/non-zero-terminated-clear
ok 31 /array/prepend-vals/zero-terminated-no-clear
ok 32 /array/prepend-vals/zero-terminated-clear
# End of prepend-vals tests
# Start of insert-vals tests
ok 33 /array/insert-vals/non-zero-terminated-no-clear
ok 34 /array/insert-vals/non-zero-terminated-clear
ok 35 /array/insert-vals/zero-terminated-no-clear
ok 36 /array/insert-vals/zero-terminated-clear
# End of insert-vals tests
# Start of remove-index tests
ok 37 /array/remove-index/non-zero-terminated-no-clear
ok 38 /array/remove-index/non-zero-terminated-clear
ok 39 /array/remove-index/zero-terminated-no-clear
ok 40 /array/remove-index/zero-terminated-clear
# End of remove-index tests
# Start of remove-index-fast tests
ok 41 /array/remove-index-fast/non-zero-terminated-no-clear
ok 42 /array/remove-index-fast/non-zero-terminated-clear
ok 43 /array/remove-index-fast/zero-terminated-no-clear
ok 44 /array/remove-index-fast/zero-terminated-clear
# End of remove-index-fast tests
# Start of remove-range tests
ok 45 /array/remove-range/non-zero-terminated-no-clear
ok 46 /array/remove-range/non-zero-terminated-clear
ok 47 /array/remove-range/zero-terminated-no-clear
ok 48 /array/remove-range/zero-terminated-clear
# End of remove-range tests
# Start of copy tests
ok 49 /array/copy/non-zero-terminated-no-clear
ok 50 /array/copy/non-zero-terminated-clear
ok 51 /array/copy/zero-terminated-no-clear
ok 52 /array/copy/zero-terminated-clear
# End of copy tests
# Start of sort tests
ok 53 /array/sort/non-zero-terminated-no-clear
ok 54 /array/sort/non-zero-terminated-clear
ok 55 /array/sort/zero-terminated-no-clear
ok 56 /array/sort/zero-terminated-clear
# End of sort tests
# Start of sort-with-data tests
ok 57 /array/sort-with-data/non-zero-terminated-no-clear
ok 58 /array/sort-with-data/non-zero-terminated-clear
ok 59 /array/sort-with-data/zero-terminated-no-clear
ok 60 /array/sort-with-data/zero-terminated-clear
# End of sort-with-data tests
# End of array tests
# Start of pointerarray tests
ok 61 /pointerarray/add
ok 62 /pointerarray/insert
ok 63 /pointerarray/new-take
ok 64 /pointerarray/new-take-null-terminated
ok 65 /pointerarray/new-from-array
ok 66 /pointerarray/new-from-null-terminated-array
ok 67 /pointerarray/free-func
ok 68 /pointerarray/array_extend_and_steal
ok 69 /pointerarray/sort
ok 70 /pointerarray/sort-with-data
ok 71 /pointerarray/sort-values
ok 72 /pointerarray/sort-values-with-data
ok 73 /pointerarray/remove-range
ok 74 /pointerarray/steal
# Start of free tests
# /pointerarray/free/null-terminated summary: Check that g_ptr_array_free() on an empty array returns a NULL-terminated empty array
ok 75 /pointerarray/free/null-terminated
# End of free tests
# Start of new-take tests
ok 76 /pointerarray/new-take/empty
ok 77 /pointerarray/new-take/overflow # SKIP Overflow test requires UINT_WIDTH > SIZE_WIDTH.
ok 78 /pointerarray/new-take/with-free-func
# End of new-take tests
# Start of new-take-null-terminated tests
ok 79 /pointerarray/new-take-null-terminated/empty
ok 80 /pointerarray/new-take-null-terminated/with-free-func
ok 81 /pointerarray/new-take-null-terminated/from-gstrv
# End of new-take-null-terminated tests
# Start of new-from-array tests
ok 82 /pointerarray/new-from-array/empty
ok 83 /pointerarray/new-from-array/overflow # SKIP Overflow test requires UINT_WIDTH > SIZE_WIDTH.
ok 84 /pointerarray/new-from-array/with-copy-and-free-func
# End of new-from-array tests
# Start of new-from-null-terminated-array tests
ok 85 /pointerarray/new-from-null-terminated-array/empty
ok 86 /pointerarray/new-from-null-terminated-array/with-copy-and-free-func
ok 87 /pointerarray/new-from-null-terminated-array/from-gstrv
# End of new-from-null-terminated-array tests
# Start of ref-count tests
ok 88 /pointerarray/ref-count/not-null-terminated
ok 89 /pointerarray/ref-count/null-terminated
# End of ref-count tests
# Start of array_copy tests
# /pointerarray/array_copy/not-null-terminated summary: Check all normal behaviour of stealing elements from one array to append to another, covering different array sizes and element copy functions
ok 90 /pointerarray/array_copy/not-null-terminated
# /pointerarray/array_copy/null-terminated summary: Check all normal behaviour of stealing elements from one array to append to another, covering different array sizes and element copy functions
ok 91 /pointerarray/array_copy/null-terminated
# End of array_copy tests
# Start of array_extend tests
ok 92 /pointerarray/array_extend/not-null-terminated
ok 93 /pointerarray/array_extend/null-terminated
# End of array_extend tests
# Start of sort tests
# /pointerarray/sort/example summary: Check that the doc-comment for g_ptr_array_sort() is correct
ok 94 /pointerarray/sort/example
# End of sort tests
# Start of sort-with-data tests
# /pointerarray/sort-with-data/example summary: Check that the doc-comment for g_ptr_array_sort_with_data() is correct
ok 95 /pointerarray/sort-with-data/example
# End of sort-with-data tests
# Start of sort-values tests
ok 96 /pointerarray/sort-values/example
# End of sort-values tests
# Start of sort-values-with-data tests
ok 97 /pointerarray/sort-values-with-data/example
# End of sort-values-with-data tests
# Start of find tests
ok 98 /pointerarray/find/empty
ok 99 /pointerarray/find/non-empty
# End of find tests
# Start of steal_index tests
ok 100 /pointerarray/steal_index/not-null-terminated
ok 101 /pointerarray/steal_index/null-terminated
# End of steal_index tests
# End of pointerarray tests
# Start of bytearray tests
ok 102 /bytearray/steal
ok 103 /bytearray/append
ok 104 /bytearray/prepend
ok 105 /bytearray/remove
ok 106 /bytearray/remove-fast
ok 107 /bytearray/remove-range
ok 108 /bytearray/ref-count
ok 109 /bytearray/sort
ok 110 /bytearray/sort-with-data
ok 111 /bytearray/new-take
ok 112 /bytearray/new-take-overflow # SKIP Overflow test requires G_MAXSIZE > G_MAXUINT.
ok 113 /bytearray/free-to-bytes
# End of bytearray tests
PASS: glib/array-test.test
Running test: glib/srvtarget.test
TAP version 14
# random seed: R02Se70c7eb8afd5d293e66046c9a6dfae2d
1..1
# Start of srvtarget tests
ok 1 /srvtarget/srv-target-ordering
# End of srvtarget tests
PASS: glib/srvtarget.test
Running test: glib/bindinggroup.test
TAP version 14
# random seed: R02Sa0a72b8927b3fbbea8aa6e2dd15fcbed
1..11
# Start of GObject tests
# Start of BindingGroup tests
ok 1 /GObject/BindingGroup/invalid
ok 2 /GObject/BindingGroup/default
ok 3 /GObject/BindingGroup/bidirectional
ok 4 /GObject/BindingGroup/transform
ok 5 /GObject/BindingGroup/transform-closures
ok 6 /GObject/BindingGroup/same-object
ok 7 /GObject/BindingGroup/weak-ref-source
ok 8 /GObject/BindingGroup/weak-ref-target
ok 9 /GObject/BindingGroup/properties
ok 10 /GObject/BindingGroup/weak-notify-no-bindings
ok 11 /GObject/BindingGroup/empty-closures
# End of BindingGroup tests
# End of GObject tests
PASS: glib/bindinggroup.test
Running test: glib/tls-interaction.test
TAP version 14
# random seed: R02Sa7ab068a63ce844eba47bcde761ca912
1..42
# Start of tls-interaction tests
# Start of ask-password tests
# Start of invoke-with-loop tests
ok 1 /tls-interaction/ask-password/invoke-with-loop/unhandled-implementation
ok 2 /tls-interaction/ask-password/invoke-with-loop/async-implementation-success
ok 3 /tls-interaction/ask-password/invoke-with-loop/async-implementation-failure
ok 4 /tls-interaction/ask-password/invoke-with-loop/sync-implementation-success
ok 5 /tls-interaction/ask-password/invoke-with-loop/sync-implementation-failure
# End of invoke-with-loop tests
# Start of invoke-without-loop tests
ok 6 /tls-interaction/ask-password/invoke-without-loop/unhandled-implementation
ok 7 /tls-interaction/ask-password/invoke-without-loop/async-implementation-success
ok 8 /tls-interaction/ask-password/invoke-without-loop/async-implementation-failure
ok 9 /tls-interaction/ask-password/invoke-without-loop/sync-implementation-success
ok 10 /tls-interaction/ask-password/invoke-without-loop/sync-implementation-failure
# End of invoke-without-loop tests
# Start of invoke-in-loop tests
ok 11 /tls-interaction/ask-password/invoke-in-loop/unhandled-implementation
ok 12 /tls-interaction/ask-password/invoke-in-loop/async-implementation-success
ok 13 /tls-interaction/ask-password/invoke-in-loop/async-implementation-failure
ok 14 /tls-interaction/ask-password/invoke-in-loop/sync-implementation-success
ok 15 /tls-interaction/ask-password/invoke-in-loop/sync-implementation-failure
# End of invoke-in-loop tests
# Start of sync tests
ok 16 /tls-interaction/ask-password/sync/unhandled-implementation
ok 17 /tls-interaction/ask-password/sync/sync-implementation-success
ok 18 /tls-interaction/ask-password/sync/sync-implementation-failure
# End of sync tests
# Start of async tests
ok 19 /tls-interaction/ask-password/async/unhandled-implementation
ok 20 /tls-interaction/ask-password/async/async-implementation-success
ok 21 /tls-interaction/ask-password/async/async-implementation-failure
# End of async tests
# End of ask-password tests
# Start of request-certificate tests
# Start of invoke-with-loop tests
ok 22 /tls-interaction/request-certificate/invoke-with-loop/unhandled-implementation
ok 23 /tls-interaction/request-certificate/invoke-with-loop/async-implementation-success
ok 24 /tls-interaction/request-certificate/invoke-with-loop/async-implementation-failure
ok 25 /tls-interaction/request-certificate/invoke-with-loop/sync-implementation-success
ok 26 /tls-interaction/request-certificate/invoke-with-loop/sync-implementation-failure
# End of invoke-with-loop tests
# Start of invoke-without-loop tests
ok 27 /tls-interaction/request-certificate/invoke-without-loop/unhandled-implementation
ok 28 /tls-interaction/request-certificate/invoke-without-loop/async-implementation-success
ok 29 /tls-interaction/request-certificate/invoke-without-loop/async-implementation-failure
ok 30 /tls-interaction/request-certificate/invoke-without-loop/sync-implementation-success
ok 31 /tls-interaction/request-certificate/invoke-without-loop/sync-implementation-failure
# End of invoke-without-loop tests
# Start of invoke-in-loop tests
ok 32 /tls-interaction/request-certificate/invoke-in-loop/unhandled-implementation
ok 33 /tls-interaction/request-certificate/invoke-in-loop/async-implementation-success
ok 34 /tls-interaction/request-certificate/invoke-in-loop/async-implementation-failure
ok 35 /tls-interaction/request-certificate/invoke-in-loop/sync-implementation-success
ok 36 /tls-interaction/request-certificate/invoke-in-loop/sync-implementation-failure
# End of invoke-in-loop tests
# Start of sync tests
ok 37 /tls-interaction/request-certificate/sync/unhandled-implementation
ok 38 /tls-interaction/request-certificate/sync/sync-implementation-success
ok 39 /tls-interaction/request-certificate/sync/sync-implementation-failure
# End of sync tests
# Start of async tests
ok 40 /tls-interaction/request-certificate/async/unhandled-implementation
ok 41 /tls-interaction/request-certificate/async/async-implementation-success
ok 42 /tls-interaction/request-certificate/async/async-implementation-failure
# End of async tests
# End of request-certificate tests
# End of tls-interaction tests
PASS: glib/tls-interaction.test
Running test: glib/logging.test
TAP version 14
# random seed: R02S27c1f5ca88875212d3742b8cd72901be
1..17
# Start of logging tests
Executing: glib/logging.test
ok 1 /logging/default-handler
# slow test /logging/default-handler executed in 1.57 secs
ok 2 /logging/warnings
ok 3 /logging/fatal-log-mask
# bu-DEBUG: message
# ba-DEBUG: message
# ba-INFO: message
ok 4 /logging/set-handler
ok 5 /logging/print-handler
ok 6 /logging/printerr-handler
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=653052
# The Log Message Handler
# 
# The Good Fail Message Handler
# 
ok 7 /logging/653052
ok 8 /logging/gibberish
# Start of default-handler tests
# Start of subprocess tests
# End of subprocess tests
# End of default-handler tests
# End of logging tests
# Start of structured-logging tests
ok 9 /structured-logging/no-state
ok 10 /structured-logging/some-state
ok 11 /structured-logging/robustness
ok 12 /structured-logging/roundtrip1
ok 13 /structured-logging/roundtrip2
ok 14 /structured-logging/roundtrip3
ok 15 /structured-logging/variant1
ok 16 /structured-logging/variant2
ok 17 /structured-logging/set-writer-func-twice
# End of structured-logging tests
PASS: glib/logging.test
Running test: glib/struct-info.test
TAP version 14
# random seed: R02Sf299b62cf0268ddeb6e1cefd7a5f60bc
1..4
# Start of struct-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/struct-info/field-iterators/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/struct-info/field-iterators/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/struct-info/field-iterators/.dirs/system-config1:/var/volatile/tmp/struct-info/field-iterators/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/struct-info/field-iterators/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/struct-info/field-iterators/.dirs/system-data1:/var/volatile/tmp/struct-info/field-iterators/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/struct-info/field-iterators/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/struct-info/field-iterators/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/struct-info/field-iterators/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /struct-info/field-iterators summary: Test iterating through a struct's fields with gi_struct_info_get_field()
ok 1 /struct-info/field-iterators
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/system-config1:/var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/system-data1:/var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/struct-info/sizeof-gvalue/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /struct-info/sizeof-gvalue summary: Test that gi_struct_info_get_size() reports the correct sizeof GValue
ok 2 /struct-info/sizeof-gvalue
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/system-config1:/var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/system-data1:/var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/struct-info/is-pointer-for-struct-method-arg/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /struct-info/is-pointer-for-struct-method-arg summary: Test that a struct method reports the correct type with gi_type_info_is_pointer()
ok 3 /struct-info/is-pointer-for-struct-method-arg
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/struct-info/boxed/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/struct-info/boxed/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/struct-info/boxed/.dirs/system-config1:/var/volatile/tmp/struct-info/boxed/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/struct-info/boxed/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/struct-info/boxed/.dirs/system-data1:/var/volatile/tmp/struct-info/boxed/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/struct-info/boxed/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/struct-info/boxed/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/struct-info/boxed/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /struct-info/boxed summary: Test that a boxed struct is recognised as such
ok 4 /struct-info/boxed
# End of struct-info tests
PASS: glib/struct-info.test
Running test: glib/gdbus-non-socket.test
TAP version 14
# random seed: R02S52c64d17c45ed1975d93d1e5a3c1f45f
1..1
# Start of gdbus tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/non-socket/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/non-socket/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/non-socket/.dirs/system-config1:/var/volatile/tmp/gdbus/non-socket/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/non-socket/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/non-socket/.dirs/system-data1:/var/volatile/tmp/gdbus/non-socket/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/non-socket/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/non-socket/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/non-socket/.dirs/runtime
ok 1 /gdbus/non-socket
# End of gdbus tests
PASS: glib/gdbus-non-socket.test
Running test: glib/socket.test
TAP version 14
# random seed: R02Sfcc6329ff6ca526ab1ca1c097ca7c52a
1..28
# Start of socket tests
ok 1 /socket/ipv4_sync
# slow test /socket/ipv4_sync executed in 1.00 secs
ok 2 /socket/ipv4_async
# slow test /socket/ipv4_async executed in 1.00 secs
ok 3 /socket/ipv6_sync
ok 4 /socket/ipv6_async
ok 5 /socket/ipv6_v4mapped
ok 6 /socket/close_graceful
# slow test /socket/close_graceful executed in 1.00 secs
ok 7 /socket/timed_wait # SKIP Not running timing heavy test
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=741707
ok 8 /socket/fd_reuse
ok 9 /socket/address
ok 10 /socket/unix-from-fd
ok 11 /socket/unix-connection
ok 12 /socket/unix-connection-ancillary-data
ok 13 /socket/source-postmortem
ok 14 /socket/read_write
ok 15 /socket/read_writev
# /socket/receive_bytes summary: Test basic functionality of g_socket_receive_bytes()
ok 16 /socket/receive_bytes
# /socket/receive_bytes_from summary: Test basic functionality of g_socket_receive_bytes_from()
ok 17 /socket/receive_bytes_from
# Start of ipv4_sync tests
ok 18 /socket/ipv4_sync/datagram
# Start of datagram tests
ok 19 /socket/ipv4_sync/datagram/timeouts
# slow test /socket/ipv4_sync/datagram/timeouts executed in 1.10 secs
# End of datagram tests
# End of ipv4_sync tests
# Start of ipv6_sync tests
ok 20 /socket/ipv6_sync/datagram
# Start of datagram tests
Executing: glib/socket.test
ok 21 /socket/ipv6_sync/datagram/timeouts
# slow test /socket/ipv6_sync/datagram/timeouts executed in 1.10 secs
# End of datagram tests
# End of ipv6_sync tests
# Start of reuse tests
ok 22 /socket/reuse/tcp
ok 23 /socket/reuse/udp
# End of reuse tests
# Start of get_available tests
ok 24 /socket/get_available/datagram
ok 25 /socket/get_available/stream
# End of get_available tests
# Start of credentials tests
# Supported on this OS: GCredentials:linux-ucred:pid=0
ok 26 /socket/credentials/tcp_client
# Supported on this OS: GCredentials:linux-ucred:pid=0
ok 27 /socket/credentials/tcp_server
# Supported on this OS: GCredentials:linux-ucred:pid=2854,uid=1000,gid=1000
ok 28 /socket/credentials/unix_socketpair
# End of credentials tests
# End of socket tests
PASS: glib/socket.test
Running test: glib/base64.test
TAP version 14
# random seed: R02Scb30e84df841595ff9ee8fb8c11fc94b
1..28
# Start of base64 tests
ok 1 /base64/encode
ok 2 /base64/decode
ok 3 /base64/decode-inplace
ok 4 /base64/encode-decode
# Start of full tests
ok 5 /base64/full/1
ok 6 /base64/full/2
ok 7 /base64/full/3
ok 8 /base64/full/4
# End of full tests
# Start of encode tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1698
ok 9 /base64/encode/empty
# Start of incremental tests
# Start of small-block tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=780066
ok 10 /base64/encode/incremental/small-block/1
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=780066
ok 11 /base64/encode/incremental/small-block/2
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=780066
ok 12 /base64/encode/incremental/small-block/3
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=780066
ok 13 /base64/encode/incremental/small-block/4
# End of small-block tests
# End of incremental tests
# End of encode tests
# Start of incremental tests
# Start of nobreak tests
ok 14 /base64/incremental/nobreak/1
ok 15 /base64/incremental/nobreak/2
ok 16 /base64/incremental/nobreak/3
ok 17 /base64/incremental/nobreak/4-a
ok 18 /base64/incremental/nobreak/4-b
ok 19 /base64/incremental/nobreak/4-c
# End of nobreak tests
# Start of break tests
ok 20 /base64/incremental/break/1
ok 21 /base64/incremental/break/2
ok 22 /base64/incremental/break/3
# End of break tests
# Start of smallblock tests
ok 23 /base64/incremental/smallblock/1
ok 24 /base64/incremental/smallblock/2
ok 25 /base64/incremental/smallblock/3
ok 26 /base64/incremental/smallblock/4
# End of smallblock tests
# End of incremental tests
# Start of decode tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1698
ok 27 /base64/decode/empty
# End of decode tests
# Start of encode-decode tests
# Vector 0: 
# Vector 1: f
# Vector 2: fo
# Vector 3: foo
# Vector 4: foob
# Vector 5: fooba
# Vector 6: foobar
ok 28 /base64/encode-decode/rfc4648
# End of encode-decode tests
# End of base64 tests
PASS: glib/base64.test
Running test: glib/reference.test
TAP version 14
# random seed: R02S4c3922567beab09c4e8ab4a3770b3788
1..29
# Start of type tests
ok 1 /type/fundamentals
ok 2 /type/qdata
ok 3 /type/query
ok 4 /type/class-private
# End of type tests
# Start of object tests
ok 5 /object/clear
ok 6 /object/clear-function
ok 7 /object/set
ok 8 /object/set-function
ok 9 /object/value
ok 10 /object/initially-unowned
ok 11 /object/weak-pointer
ok 12 /object/weak-ref
ok 13 /object/toggle-ref
ok 14 /object/qdata
ok 15 /object/qdata2
# Start of set tests
# /object/set/derived-type summary: Check that g_set_object() doesn?t give strict aliasing warnings when used on types derived from GObject
ok 16 /object/set/derived-type
# End of set tests
# Start of weak-pointer tests
ok 17 /object/weak-pointer/clear
ok 18 /object/weak-pointer/clear-function
ok 19 /object/weak-pointer/set
ok 20 /object/weak-pointer/set-function
# End of weak-pointer tests
# Start of weak-ref tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2390
# /object/weak-ref/on-dispose summary: Test that a weak ref set during dispose vfunc is cleared
ok 21 /object/weak-ref/on-dispose
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/865
# /object/weak-ref/on-run-dispose summary: Test that a weak ref is cleared on g_object_run_dispose()
ok 22 /object/weak-ref/on-run-dispose
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2390
# /object/weak-ref/on-toggle-notify summary: Test that a weak ref set on toggle notify is cleared
ok 23 /object/weak-ref/on-toggle-notify
ok 24 /object/weak-ref/in-toggle-notify
ok 25 /object/weak-ref/many
# Start of concurrent tests
ok 26 /object/weak-ref/concurrent/0
ok 27 /object/weak-ref/concurrent/1
# End of concurrent tests
# End of weak-ref tests
# Start of toggle-ref tests
ok 28 /object/toggle-ref/ref-on-dispose
ok 29 /object/toggle-ref/ref-and-notify-on-dispose
# End of toggle-ref tests
# End of object tests
PASS: glib/reference.test
Running test: glib/memory-monitor-portal.test
TAP version 13
ok 1 __main__.TestLowMemoryMonitorPortal.test_low_memory_warning_portal_signal # SKIP xdg-desktop-portal not available
1..1
PASS: glib/memory-monitor-portal.test
Running test: glib/overflow.test
TAP version 14
# random seed: R02Sbb385dbcc485dadb3bf285d266e8c2a8
1..6
# Start of glib tests
# Start of checked-math tests
ok 1 /glib/checked-math/guint-add
ok 2 /glib/checked-math/guint-mul
ok 3 /glib/checked-math/guint64-add
ok 4 /glib/checked-math/guint64-mul
ok 5 /glib/checked-math/gsize-add
ok 6 /glib/checked-math/gsize-mul
# End of checked-math tests
# End of glib tests
PASS: glib/overflow.test
Running test: glib/rwlock.test
TAP version 14
# random seed: R02S5eefef8b7258676fe66060df725d3178
1..8
# Start of thread tests
ok 1 /thread/rwlock1
ok 2 /thread/rwlock2
ok 3 /thread/rwlock3
ok 4 /thread/rwlock4
ok 5 /thread/rwlock5
ok 6 /thread/rwlock6
ok 7 /thread/rwlock7
# slow test /thread/rwlock7 executed in 1.46 secs
ok 8 /thread/rwlock8
# End of thread tests
PASS: glib/rwlock.test
Running test: glib/callable-info.test
TAP version 14
# random seed: R02Sc147f2b7edc7867c30cb933502fcd3e0
1..5
# Start of callable-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/sync-function/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/sync-function/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/sync-function/.dirs/system-config1:/var/volatile/tmp/callable-info/sync-function/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/sync-function/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/sync-function/.dirs/system-data1:/var/volatile/tmp/callable-info/sync-function/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/sync-function/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/sync-function/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/sync-function/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 1 /callable-info/sync-function
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/async-function/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/async-function/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/async-function/.dirs/system-config1:/var/volatile/tmp/callable-info/async-function/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/async-function/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/async-function/.dirs/system-data1:/var/volatile/tmp/callable-info/async-function/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/async-function/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/async-function/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/async-function/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 2 /callable-info/async-function
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/is-method/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/is-method/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/is-method/.dirs/system-config1:/var/volatile/tmp/callable-info/is-method/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/is-method/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/is-method/.dirs/system-data1:/var/volatile/tmp/callable-info/is-method/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/is-method/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/is-method/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/is-method/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 3 /callable-info/is-method
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/static-method/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/static-method/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/static-method/.dirs/system-config1:/var/volatile/tmp/callable-info/static-method/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/static-method/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/static-method/.dirs/system-data1:/var/volatile/tmp/callable-info/static-method/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/static-method/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/static-method/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/static-method/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 4 /callable-info/static-method
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/static-vfunc/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/static-vfunc/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/static-vfunc/.dirs/system-config1:/var/volatile/tmp/callable-info/static-vfunc/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/static-vfunc/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/static-vfunc/.dirs/system-data1:/var/volatile/tmp/callable-info/static-vfunc/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/static-vfunc/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/static-vfunc/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/static-vfunc/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# Bug Reference: https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/361
ok 5 /callable-info/static-vfunc # SKIP g-ir-scanner is not new enough
# End of callable-info tests
PASS: glib/callable-info.test
Running test: glib/thread.test
TAP version 14
# random seed: R02Se0550de8911afc4ff3291152b6b055a2
1..7
# Start of thread tests
ok 1 /thread/thread1
ok 2 /thread/thread2
ok 3 /thread/thread3
ok 4 /thread/thread4
ok 5 /thread/thread5
ok 6 /thread/thread6
ok 7 /thread/thread7
# End of thread tests
PASS: glib/thread.test
Running test: glib/protocol.test
TAP version 14
# random seed: R02S02d8a42266a8170c30a237fafa2905a0
1..9
# Start of glib tests
# Start of testing tests
# Start of protocol tests
ok 1 /glib/testing/protocol/debug
ok 2 /glib/testing/protocol/info
ok 3 /glib/testing/protocol/message
ok 4 /glib/testing/protocol/warning
ok 5 /glib/testing/protocol/critical
ok 6 /glib/testing/protocol/error
ok 7 /glib/testing/protocol/gtest-message
ok 8 /glib/testing/protocol/test-message
ok 9 /glib/testing/protocol/test-error
# End of protocol tests
# End of testing tests
# End of glib tests
PASS: glib/protocol.test
Running test: glib/atomic-c-17.test
TAP version 14
# random seed: R02S1fa85a73e8db7472a837372349a13c3e
1..2
# Start of atomic tests
ok 1 /atomic/types
ok 2 /atomic/threaded
# End of atomic tests
PASS: glib/atomic-c-17.test
Running test: glib/utf8-misc.test
TAP version 14
# random seed: R02S1652bd9a9102c4a9f8a2f7e72c7e3ea0
1..7
# Start of utf8 tests
ok 1 /utf8/strlen
ok 2 /utf8/strncpy
ok 3 /utf8/strrchr
ok 4 /utf8/reverse
ok 5 /utf8/substring
ok 6 /utf8/make-valid
ok 7 /utf8/truncate-middle
# End of utf8 tests
PASS: glib/utf8-misc.test
Running test: glib/permission.test
TAP version 14
# random seed: R02S9e44c6d67f7e597ea6833f2443b2dae0
1..1
# Start of permission tests
ok 1 /permission/simple
# End of permission tests
PASS: glib/permission.test
Running test: glib/cxx-14.test
TAP version 14
# random seed: R02S5408f26da6f3e613b85d45d4572a9c25
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-14.test
Running test: glib/private.test
TAP version 14
# random seed: R02Sb184a7099d68be7d5b36c0076ad46f3a
1..8
# Start of thread tests
ok 1 /thread/private1
ok 2 /thread/private2
# slow test /thread/private2 executed in 1.07 secs
ok 3 /thread/private3
ok 4 /thread/staticprivate1
ok 5 /thread/staticprivate2
ok 6 /thread/staticprivate3
ok 7 /thread/staticprivate4
# slow test /thread/staticprivate4 executed in 1.07 secs
ok 8 /thread/staticprivate5
# End of thread tests
PASS: glib/private.test
Running test: glib/atomic.test
TAP version 14
# random seed: R02S12c368ce1e909ef32c7dbe272368b912
1..2
# Start of atomic tests
ok 1 /atomic/types
ok 2 /atomic/threaded
# End of atomic tests
PASS: glib/atomic.test
Running test: glib/node.test
TAP version 14
# random seed: R02S7ae1229bd4b2a52404133bcc3b0f0d26
1..6
# Start of node tests
ok 1 /node/allocation
ok 2 /node/construction
ok 3 /node/traversal
ok 4 /node/misc
ok 5 /node/unlink
ok 6 /node/copy
# End of node tests
PASS: glib/node.test
Running test: glib/portal-support-snap-classic.test
TAP version 14
# random seed: R02S32bfc6a6aaba1036e3ced5c553201436
1..3
# Start of portal-support tests
# Start of snap-classic tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/system-config1:/var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/system-data1:/var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap-classic/no-snapctl/.dirs/runtime
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap-classic/no-snapctl: No such file or directory
ok 1 /portal-support/snap-classic/no-snapctl
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/system-config1:/var/volatile/tmp/portal-support/snap-classic/none/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/system-data1:/var/volatile/tmp/portal-support/snap-classic/none/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap-classic/none/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap-classic/none/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap-classic/none: No such file or directory
ok 2 /portal-support/snap-classic/none
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/system-config1:/var/volatile/tmp/portal-support/snap-classic/all/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/system-data1:/var/volatile/tmp/portal-support/snap-classic/all/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/portal-support/snap-classic/all/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/meta/snap.yaml
# Created snapctl in /var/volatile/tmp/portal-support/snap-classic/all/.dirs/runtime/snapctl
Unable to clean up temporary directory /var/volatile/tmp/portal-support/snap-classic/all: No such file or directory
ok 3 /portal-support/snap-classic/all
# End of snap-classic tests
# End of portal-support tests
PASS: glib/portal-support-snap-classic.test
Running test: glib/onceinit.test
TAP version 14
# random seed: R02S44d0771443a3b1fcb93fb64fce9933a6
1..1
# Start of thread tests
Executing: glib/onceinit.test
ok 1 /thread/onceinit
# End of thread tests
PASS: glib/onceinit.test
Running test: glib/buffered-output-stream.test
TAP version 14
# random seed: R02Sbf8820c2d662eac00930e7e11bb46431
1..5
# Start of buffered-output-stream tests
ok 1 /buffered-output-stream/write
ok 2 /buffered-output-stream/grow
ok 3 /buffered-output-stream/seek
ok 4 /buffered-output-stream/truncate
# End of buffered-output-stream tests
# Start of filter-output-stream tests
ok 5 /filter-output-stream/close
# End of filter-output-stream tests
PASS: glib/buffered-output-stream.test
Running test: glib/pathbuf.test
TAP version 14
# random seed: R02S9d808d8d36e5a5e2ab2c04f7ccf2e04a
1..3
# Start of pathbuf tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/pathbuf/init/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/pathbuf/init/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/pathbuf/init/.dirs/system-config1:/var/volatile/tmp/pathbuf/init/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/pathbuf/init/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/pathbuf/init/.dirs/system-data1:/var/volatile/tmp/pathbuf/init/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/pathbuf/init/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/pathbuf/init/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/pathbuf/init/.dirs/runtime
# Initializing empty path buf
# Initializing with empty path
# Initializing with full path
# Initializing with no path
# Allocating GPathBuf on the heap
ok 1 /pathbuf/init
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/pathbuf/push-pop/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/pathbuf/push-pop/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/pathbuf/push-pop/.dirs/system-config1:/var/volatile/tmp/pathbuf/push-pop/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/pathbuf/push-pop/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/pathbuf/push-pop/.dirs/system-data1:/var/volatile/tmp/pathbuf/push-pop/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/pathbuf/push-pop/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/pathbuf/push-pop/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/pathbuf/push-pop/.dirs/runtime
# Pushing relative path component
# Pushing absolute path component
# Popping a path component
# Can't pop the last element of a path buffer
ok 2 /pathbuf/push-pop
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/pathbuf/filename-extension/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/pathbuf/filename-extension/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/pathbuf/filename-extension/.dirs/system-config1:/var/volatile/tmp/pathbuf/filename-extension/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/pathbuf/filename-extension/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/pathbuf/filename-extension/.dirs/system-data1:/var/volatile/tmp/pathbuf/filename-extension/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/pathbuf/filename-extension/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/pathbuf/filename-extension/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/pathbuf/filename-extension/.dirs/runtime
ok 3 /pathbuf/filename-extension
# End of pathbuf tests
PASS: glib/pathbuf.test
Running test: glib/unix-fd.test
TAP version 14
# random seed: R02S0fd48d95380cfc9cbc1ba28e687c3877
1..2
# Start of unix-fd tests
ok 1 /unix-fd/fd-list
ok 2 /unix-fd/scm
# End of unix-fd tests
PASS: glib/unix-fd.test
Running test: glib/socket-service.test
TAP version 14
# random seed: R02S60dd64a3362b1ff20ab05ba54848b6fc
1..4
# Start of socket-service tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyProxyResolver) for ?gio-proxy-resolver?
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x55c4d46aeab0 and GSocketClientAsyncConnectData 0x55c4d468a1f0
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
ok 1 /socket-service/start-stop
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x55c4d46b2ad0 and GSocketClientAsyncConnectData 0x55c4d46b2770
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x55c4d46b2a50 for GSocketClientAsyncConnectData 0x55c4d468a1f0
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x55c4d46b2a50 for GSocketClientAsyncConnectData 0x55c4d46b2770
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 2 /socket-service/read_write_async
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x55c4d46b2ad0 and GSocketClientAsyncConnectData 0x55c4d46b6dc0
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x55c4d46b61c0 for GSocketClientAsyncConnectData 0x55c4d46b6dc0
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 3 /socket-service/read_writev_async
# Start of threaded tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=712570
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x55c4d46b4160 and GSocketClientAsyncConnectData 0x55c4d46b6760
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x55c4d46b7750 for GSocketClientAsyncConnectData 0x55c4d46b6760
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 4 /socket-service/threaded/712570
# End of threaded tests
# End of socket-service tests
PASS: glib/socket-service.test
Running test: glib/macros-c-99.test
TAP version 14
# random seed: R02S14dec66e4a1cdbb87c7424a942e636f8
1..4
# Start of C tests
ok 1 /C/standard-99
# End of C tests
# Start of alignof tests
ok 2 /alignof/fallback
# End of alignof tests
# Start of assert tests
ok 3 /assert/static
# End of assert tests
# Start of struct tests
ok 4 /struct/sizeof_member
# End of struct tests
PASS: glib/macros-c-99.test
Running test: glib/objects-refcount1.test
TAP version 14
# random seed: R02Sb6e771161c8b7c3d415fc1678eb6f348
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x559e8c849380
# 
# init 0x559e8c849d10
# 
Executing: glib/objects-refcount1.test
# dispose 0x559e8c849380!
# 
# dispose 0x559e8c849d10!
# 
ok 1 /gobject/refcount/object-basics
# slow test /gobject/refcount/object-basics executed in 5.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/objects-refcount1.test
Running test: glib/genmarshal.py.test
TAP version 13
ok 1 __main__.TestGenmarshal.test_empty_list
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmpghtjxs6f
# /tmp/tmpghtjxs6f/tmp4aoeyw07.list: 
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpghtjxs6f/tmp4aoeyw07.list', '--header', '--quiet']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifndef __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# #define __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# 
# #include <glib-object.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */
# Error:
#  
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpghtjxs6f/tmp4aoeyw07.list', '--body', '--quiet']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #include <glib-object.h>
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# Error:
ok 2 __main__.TestGenmarshal.test_help
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmpaarlxqwq
# Running: ['/usr/bin/glib-genmarshal', '--help']
# Return code: 0
# Output:
#  usage: glib-genmarshal [-h] [--prefix STRING] [--output FILE] [--skip-source]
#                        [--internal] [--valist-marshallers] [-v]
#                        [--g-fatal-warnings] [--include-header [HEADER]]
#                        [--pragma-once] [-D CPP_DEFINES] [-U CPP_UNDEFINES]
#                        [--prototypes] [--header] [--body] [--stdinc |
#                        --nostdinc] [--quiet | --verbose]
#                        [FILE ...]
# 
# Generate signal marshallers for GObject
# 
# positional arguments:
#   FILE                  Files with lists of marshallers to generate, or "-"
#                         for standard input
# 
# options:
#   -h, --help            show this help message and exit
#   --prefix STRING       Specify marshaller prefix
#   --output FILE         Write output into the specified file
#   --skip-source         Skip source location comments
#   --internal            Mark generated functions as internal
#   --valist-marshallers  Generate va_list marshallers
#   -v, --version         Print version information, and exit
#   --g-fatal-warnings    Make warnings fatal
#   --include-header [HEADER]
#                         Include the specified header in the body
#   --pragma-once         Use "pragma once" as the inclusion guard
#   -D CPP_DEFINES        Pre-processor define
#   -U CPP_UNDEFINES      Pre-processor undefine
#   --prototypes          Generate the marshallers prototype in the C code
#   --header              Generate C headers
#   --body                Generate C code
#   --stdinc              Include standard marshallers
#   --nostdinc            Use standard marshallers
#   --quiet               Only print warnings and errors
#   --verbose             Be verbose, and include debugging information
# Error:
ok 3 __main__.TestGenmarshal.test_no_args
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmpay9cuf8e
# Running: ['/usr/bin/glib-genmarshal']
# Return code: 0
# Output:
#  
# Error:
ok 4 __main__.TestGenmarshal.test_void_boolean
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmplyzkb1p6
# /tmp/tmplyzkb1p6/tmp3zf3c9hg.list: VOID:BOOLEAN
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmplyzkb1p6/tmp3zf3c9hg.list', '--header', '--quiet']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifndef __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# #define __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# 
# #include <glib-object.h>
# 
# G_BEGIN_DECLS
# 
# /* VOID:BOOLEAN (/tmp/tmplyzkb1p6/tmp3zf3c9hg.list:1) */
# #define g_cclosure_user_marshal_VOID__BOOLEAN	g_cclosure_marshal_VOID__BOOLEAN
# 
# 
# G_END_DECLS
# 
# #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */
# Error:
#  
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmplyzkb1p6/tmp3zf3c9hg.list', '--body', '--quiet']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #include <glib-object.h>
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# Error:
ok 5 __main__.TestGenmarshal.test_void_boolean_int64
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmpu1jus1tj
# /tmp/tmpu1jus1tj/tmp9daxbngw.list: VOID:BOOLEAN,INT64
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpu1jus1tj/tmp9daxbngw.list', '--header', '--quiet']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifndef __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# #define __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# 
# #include <glib-object.h>
# 
# G_BEGIN_DECLS
# 
# /* VOID:BOOLEAN,INT64 (/tmp/tmpu1jus1tj/tmp9daxbngw.list:1) */
# extern
# void g_cclosure_user_marshal_VOID__BOOLEAN_INT64 (GClosure     *closure,
#                                                   GValue       *return_value,
#                                                   guint         n_param_values,
#                                                   const GValue *param_values,
#                                                   gpointer      invocation_hint,
#                                                   gpointer      marshal_data);
# 
# 
# G_END_DECLS
# 
# #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */
# Error:
#  
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpu1jus1tj/tmp9daxbngw.list', '--body', '--quiet']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #include <glib-object.h>
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# /* VOID:BOOLEAN,INT64 (/tmp/tmpu1jus1tj/tmp9daxbngw.list:1) */
# void
# g_cclosure_user_marshal_VOID__BOOLEAN_INT64 (GClosure     *closure,
#                                              GValue       *return_value G_GNUC_UNUSED,
#                                              guint         n_param_values,
#                                              const GValue *param_values,
#                                              gpointer      invocation_hint G_GNUC_UNUSED,
#                                              gpointer      marshal_data)
# {
#   typedef void (*GMarshalFunc_VOID__BOOLEAN_INT64) (gpointer data1,
#                                                     gboolean arg1,
#                                                     gint64 arg2,
#                                                     gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__BOOLEAN_INT64 callback;
# 
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__BOOLEAN_INT64) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_boolean (param_values + 1),
#             g_marshal_value_peek_int64 (param_values + 2),
#             data2);
# }
# Error:
ok 6 __main__.TestGenmarshal.test_void_param_nostdinc
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmp7_7x__xl
# /tmp/tmp7_7x__xl/tmpuhup0iew.list: VOID:PARAM
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmp7_7x__xl/tmpuhup0iew.list', '--header', '--quiet', '--nostdinc', '--valist-marshaller']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifndef __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# #define __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# 
# G_BEGIN_DECLS
# 
# /* VOID:PARAM (/tmp/tmp7_7x__xl/tmpuhup0iew.list:1) */
# extern
# void g_cclosure_user_marshal_VOID__PARAM (GClosure     *closure,
#                                           GValue       *return_value,
#                                           guint         n_param_values,
#                                           const GValue *param_values,
#                                           gpointer      invocation_hint,
#                                           gpointer      marshal_data);
# extern
# void g_cclosure_user_marshal_VOID__PARAMv (GClosure *closure,
#                                            GValue   *return_value,
#                                            gpointer  instance,
#                                            va_list   args,
#                                            gpointer  marshal_data,
#                                            int       n_params,
#                                            GType    *param_types);
# 
# 
# G_END_DECLS
# 
# #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */
# Error:
#  
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmp7_7x__xl/tmpuhup0iew.list', '--body', '--quiet', '--nostdinc', '--valist-marshaller']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# /* VOID:PARAM (/tmp/tmp7_7x__xl/tmpuhup0iew.list:1) */
# void
# g_cclosure_user_marshal_VOID__PARAM (GClosure     *closure,
#                                      GValue       *return_value G_GNUC_UNUSED,
#                                      guint         n_param_values,
#                                      const GValue *param_values,
#                                      gpointer      invocation_hint G_GNUC_UNUSED,
#                                      gpointer      marshal_data)
# {
#   typedef void (*GMarshalFunc_VOID__PARAM) (gpointer data1,
#                                             gpointer arg1,
#                                             gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__PARAM callback;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__PARAM) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_param (param_values + 1),
#             data2);
# }
# 
# void
# g_cclosure_user_marshal_VOID__PARAMv (GClosure *closure,
#                                       GValue   *return_value G_GNUC_UNUSED,
#                                       gpointer  instance,
#                                       va_list   args,
#                                       gpointer  marshal_data,
#                                       int       n_params,
#                                       GType    *param_types)
# {
#   typedef void (*GMarshalFunc_VOID__PARAM) (gpointer data1,
#                                             gpointer arg1,
#                                             gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__PARAM callback;
#   gpointer arg0;
#   va_list args_copy;
# 
#   va_copy (args_copy, args);
#   arg0 = (gpointer) va_arg (args_copy, gpointer);
#   if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
#     arg0 = g_param_spec_ref (arg0);
#   va_end (args_copy);
# 
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = instance;
#     }
#   else
#     {
#       data1 = instance;
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__PARAM) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             arg0,
#             data2);
#   if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
#     g_param_spec_unref (arg0);
# }
# Error:
ok 7 __main__.TestGenmarshal.test_void_string_nostdinc
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmpt9evy036
# /tmp/tmpt9evy036/tmp23lqnapw.list: VOID:STRING
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpt9evy036/tmp23lqnapw.list', '--header', '--quiet', '--nostdinc', '--valist-marshaller']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifndef __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# #define __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# 
# G_BEGIN_DECLS
# 
# /* VOID:STRING (/tmp/tmpt9evy036/tmp23lqnapw.list:1) */
# extern
# void g_cclosure_user_marshal_VOID__STRING (GClosure     *closure,
#                                            GValue       *return_value,
#                                            guint         n_param_values,
#                                            const GValue *param_values,
#                                            gpointer      invocation_hint,
#                                            gpointer      marshal_data);
# extern
# void g_cclosure_user_marshal_VOID__STRINGv (GClosure *closure,
#                                             GValue   *return_value,
#                                             gpointer  instance,
#                                             va_list   args,
#                                             gpointer  marshal_data,
#                                             int       n_params,
#                                             GType    *param_types);
# 
# 
# G_END_DECLS
# 
# #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */
# Error:
#  
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpt9evy036/tmp23lqnapw.list', '--body', '--quiet', '--nostdinc', '--valist-marshaller']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# /* VOID:STRING (/tmp/tmpt9evy036/tmp23lqnapw.list:1) */
# void
# g_cclosure_user_marshal_VOID__STRING (GClosure     *closure,
#                                       GValue       *return_value G_GNUC_UNUSED,
#                                       guint         n_param_values,
#                                       const GValue *param_values,
#                                       gpointer      invocation_hint G_GNUC_UNUSED,
#                                       gpointer      marshal_data)
# {
#   typedef void (*GMarshalFunc_VOID__STRING) (gpointer data1,
#                                              gpointer arg1,
#                                              gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__STRING callback;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__STRING) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_string (param_values + 1),
#             data2);
# }
# 
# void
# g_cclosure_user_marshal_VOID__STRINGv (GClosure *closure,
#                                        GValue   *return_value G_GNUC_UNUSED,
#                                        gpointer  instance,
#                                        va_list   args,
#                                        gpointer  marshal_data,
#                                        int       n_params,
#                                        GType    *param_types)
# {
#   typedef void (*GMarshalFunc_VOID__STRING) (gpointer data1,
#                                              gpointer arg1,
#                                              gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__STRING callback;
#   gpointer arg0;
#   va_list args_copy;
# 
#   va_copy (args_copy, args);
#   arg0 = (gpointer) va_arg (args_copy, gpointer);
#   if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
#     arg0 = g_strdup (arg0);
#   va_end (args_copy);
# 
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = instance;
#     }
#   else
#     {
#       data1 = instance;
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__STRING) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             arg0,
#             data2);
#   if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
#     g_free (arg0);
# }
# Error:
ok 8 __main__.TestGenmarshal.test_void_variant_nostdinc_valist_marshaller
# glib-genmarshal: /usr/bin/glib-genmarshal
# tmpdir: /tmp/tmpedf351hr
# /tmp/tmpedf351hr/tmpcd0b7c8a.list: VOID:VARIANT
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpedf351hr/tmpcd0b7c8a.list', '--header', '--quiet', '--nostdinc', '--valist-marshaller']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifndef __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# #define __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__
# 
# G_BEGIN_DECLS
# 
# /* VOID:VARIANT (/tmp/tmpedf351hr/tmpcd0b7c8a.list:1) */
# extern
# void g_cclosure_user_marshal_VOID__VARIANT (GClosure     *closure,
#                                             GValue       *return_value,
#                                             guint         n_param_values,
#                                             const GValue *param_values,
#                                             gpointer      invocation_hint,
#                                             gpointer      marshal_data);
# extern
# void g_cclosure_user_marshal_VOID__VARIANTv (GClosure *closure,
#                                              GValue   *return_value,
#                                              gpointer  instance,
#                                              va_list   args,
#                                              gpointer  marshal_data,
#                                              int       n_params,
#                                              GType    *param_types);
# 
# 
# G_END_DECLS
# 
# #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */
# Error:
#  
# Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpedf351hr/tmpcd0b7c8a.list', '--body', '--quiet', '--nostdinc', '--valist-marshaller']
# Return code: 0
# Output:
#  /* This file is generated by glib-genmarshal, 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. */
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# /* VOID:VARIANT (/tmp/tmpedf351hr/tmpcd0b7c8a.list:1) */
# void
# g_cclosure_user_marshal_VOID__VARIANT (GClosure     *closure,
#                                        GValue       *return_value G_GNUC_UNUSED,
#                                        guint         n_param_values,
#                                        const GValue *param_values,
#                                        gpointer      invocation_hint G_GNUC_UNUSED,
#                                        gpointer      marshal_data)
# {
#   typedef void (*GMarshalFunc_VOID__VARIANT) (gpointer data1,
#                                               gpointer arg1,
#                                               gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__VARIANT callback;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__VARIANT) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_variant (param_values + 1),
#             data2);
# }
# 
# void
# g_cclosure_user_marshal_VOID__VARIANTv (GClosure *closure,
#                                         GValue   *return_value G_GNUC_UNUSED,
#                                         gpointer  instance,
#                                         va_list   args,
#                                         gpointer  marshal_data,
#                                         int       n_params,
#                                         GType    *param_types)
# {
#   typedef void (*GMarshalFunc_VOID__VARIANT) (gpointer data1,
#                                               gpointer arg1,
#                                               gpointer data2);
#   GCClosure *cc = (GCClosure *) closure;
#   gpointer data1, data2;
#   GMarshalFunc_VOID__VARIANT callback;
#   gpointer arg0;
#   va_list args_copy;
# 
#   va_copy (args_copy, args);
#   arg0 = (gpointer) va_arg (args_copy, gpointer);
#   if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
#     arg0 = g_variant_ref_sink (arg0);
#   va_end (args_copy);
# 
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = instance;
#     }
#   else
#     {
#       data1 = instance;
#       data2 = closure->data;
#     }
#   callback = (GMarshalFunc_VOID__VARIANT) (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             arg0,
#             data2);
#   if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
#     g_variant_unref (arg0);
# }
# Error:
1..8
PASS: glib/genmarshal.py.test
Running test: glib/codegen.py.test
TAP version 13
ok 1 __main__.TestCodegen.test_call_flags_and_timeout_method_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp5c7es52g
# /tmp/tmp5c7es52g/tmpoorbwjit.xml: 
#             <node>
#               <interface name="org.project.UsefulInterface">
#                 <method name="UsefulMethod"/>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp5c7es52g/tmpoorbwjit.xml', '--output', '-', '--header']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for org.project.UsefulInterface */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE (org_project_useful_interface_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE, OrgProjectUsefulInterface))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE))
# #define ORG_PROJECT_USEFUL_INTERFACE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE, OrgProjectUsefulInterfaceIface))
# 
# struct _OrgProjectUsefulInterface;
# typedef struct _OrgProjectUsefulInterface OrgProjectUsefulInterface;
# typedef struct _OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceIface;
# 
# struct _OrgProjectUsefulInterfaceIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_useful_method) (
#     OrgProjectUsefulInterface *object,
#     GDBusMethodInvocation *invocation);
# 
# };
# 
# GType org_project_useful_interface_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *org_project_useful_interface_interface_info (void);
# guint org_project_useful_interface_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void org_project_useful_interface_complete_useful_method (
#     OrgProjectUsefulInterface *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void org_project_useful_interface_call_useful_method (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean org_project_useful_interface_call_useful_method_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean org_project_useful_interface_call_useful_method_sync (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY (org_project_useful_interface_proxy_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxy))
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyClass))
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyClass))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY))
# 
# typedef struct _OrgProjectUsefulInterfaceProxy OrgProjectUsefulInterfaceProxy;
# typedef struct _OrgProjectUsefulInterfaceProxyClass OrgProjectUsefulInterfaceProxyClass;
# typedef struct _OrgProjectUsefulInterfaceProxyPrivate OrgProjectUsefulInterfaceProxyPrivate;
# 
# struct _OrgProjectUsefulInterfaceProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   OrgProjectUsefulInterfaceProxyPrivate *priv;
# };
# 
# struct _OrgProjectUsefulInterfaceProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType org_project_useful_interface_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectUsefulInterfaceProxy, g_object_unref)
# #endif
# 
# void org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON (org_project_useful_interface_skeleton_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeleton))
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonClass))
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonClass))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON))
# 
# typedef struct _OrgProjectUsefulInterfaceSkeleton OrgProjectUsefulInterfaceSkeleton;
# typedef struct _OrgProjectUsefulInterfaceSkeletonClass OrgProjectUsefulInterfaceSkeletonClass;
# typedef struct _OrgProjectUsefulInterfaceSkeletonPrivate OrgProjectUsefulInterfaceSkeletonPrivate;
# 
# struct _OrgProjectUsefulInterfaceSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   OrgProjectUsefulInterfaceSkeletonPrivate *priv;
# };
# 
# struct _OrgProjectUsefulInterfaceSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType org_project_useful_interface_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectUsefulInterfaceSkeleton, g_object_unref)
# #endif
# 
# OrgProjectUsefulInterface *org_project_useful_interface_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
#  
# /tmp/tmp5c7es52g/tmprcdtm2kw.xml: 
#             <node>
#               <interface name="org.project.UsefulInterface">
#                 <method name="UsefulMethod"/>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp5c7es52g/tmprcdtm2kw.xml', '--output', '-', '--header', '--glib-min-required', '2.32']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for org.project.UsefulInterface */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE (org_project_useful_interface_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE, OrgProjectUsefulInterface))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE))
# #define ORG_PROJECT_USEFUL_INTERFACE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE, OrgProjectUsefulInterfaceIface))
# 
# struct _OrgProjectUsefulInterface;
# typedef struct _OrgProjectUsefulInterface OrgProjectUsefulInterface;
# typedef struct _OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceIface;
# 
# struct _OrgProjectUsefulInterfaceIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_useful_method) (
#     OrgProjectUsefulInterface *object,
#     GDBusMethodInvocation *invocation);
# 
# };
# 
# GType org_project_useful_interface_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *org_project_useful_interface_interface_info (void);
# guint org_project_useful_interface_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void org_project_useful_interface_complete_useful_method (
#     OrgProjectUsefulInterface *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void org_project_useful_interface_call_useful_method (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean org_project_useful_interface_call_useful_method_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean org_project_useful_interface_call_useful_method_sync (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY (org_project_useful_interface_proxy_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxy))
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyClass))
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyClass))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY))
# 
# typedef struct _OrgProjectUsefulInterfaceProxy OrgProjectUsefulInterfaceProxy;
# typedef struct _OrgProjectUsefulInterfaceProxyClass OrgProjectUsefulInterfaceProxyClass;
# typedef struct _OrgProjectUsefulInterfaceProxyPrivate OrgProjectUsefulInterfaceProxyPrivate;
# 
# struct _OrgProjectUsefulInterfaceProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   OrgProjectUsefulInterfaceProxyPrivate *priv;
# };
# 
# struct _OrgProjectUsefulInterfaceProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType org_project_useful_interface_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectUsefulInterfaceProxy, g_object_unref)
# #endif
# 
# void org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON (org_project_useful_interface_skeleton_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeleton))
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonClass))
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonClass))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON))
# 
# typedef struct _OrgProjectUsefulInterfaceSkeleton OrgProjectUsefulInterfaceSkeleton;
# typedef struct _OrgProjectUsefulInterfaceSkeletonClass OrgProjectUsefulInterfaceSkeletonClass;
# typedef struct _OrgProjectUsefulInterfaceSkeletonPrivate OrgProjectUsefulInterfaceSkeletonPrivate;
# 
# struct _OrgProjectUsefulInterfaceSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   OrgProjectUsefulInterfaceSkeletonPrivate *priv;
# };
# 
# struct _OrgProjectUsefulInterfaceSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType org_project_useful_interface_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectUsefulInterfaceSkeleton, g_object_unref)
# #endif
# 
# OrgProjectUsefulInterface *org_project_useful_interface_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
#  
# /tmp/tmp5c7es52g/tmpu_07nw31.xml: 
#             <node>
#               <interface name="org.project.UsefulInterface">
#                 <method name="UsefulMethod"/>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp5c7es52g/tmpu_07nw31.xml', '--output', '-', '--header', '--glib-min-required', '2.64']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for org.project.UsefulInterface */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE (org_project_useful_interface_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE, OrgProjectUsefulInterface))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE))
# #define ORG_PROJECT_USEFUL_INTERFACE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE, OrgProjectUsefulInterfaceIface))
# 
# struct _OrgProjectUsefulInterface;
# typedef struct _OrgProjectUsefulInterface OrgProjectUsefulInterface;
# typedef struct _OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceIface;
# 
# struct _OrgProjectUsefulInterfaceIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_useful_method) (
#     OrgProjectUsefulInterface *object,
#     GDBusMethodInvocation *invocation);
# 
# };
# 
# GType org_project_useful_interface_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *org_project_useful_interface_interface_info (void);
# guint org_project_useful_interface_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void org_project_useful_interface_complete_useful_method (
#     OrgProjectUsefulInterface *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void org_project_useful_interface_call_useful_method (
#     OrgProjectUsefulInterface *proxy,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean org_project_useful_interface_call_useful_method_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean org_project_useful_interface_call_useful_method_sync (
#     OrgProjectUsefulInterface *proxy,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY (org_project_useful_interface_proxy_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxy))
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyClass))
# #define ORG_PROJECT_USEFUL_INTERFACE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyClass))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY))
# 
# typedef struct _OrgProjectUsefulInterfaceProxy OrgProjectUsefulInterfaceProxy;
# typedef struct _OrgProjectUsefulInterfaceProxyClass OrgProjectUsefulInterfaceProxyClass;
# typedef struct _OrgProjectUsefulInterfaceProxyPrivate OrgProjectUsefulInterfaceProxyPrivate;
# 
# struct _OrgProjectUsefulInterfaceProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   OrgProjectUsefulInterfaceProxyPrivate *priv;
# };
# 
# struct _OrgProjectUsefulInterfaceProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType org_project_useful_interface_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectUsefulInterfaceProxy, g_object_unref)
# #endif
# 
# void org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectUsefulInterface *org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON (org_project_useful_interface_skeleton_get_type ())
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeleton))
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonClass))
# #define ORG_PROJECT_USEFUL_INTERFACE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonClass))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON))
# #define IS_ORG_PROJECT_USEFUL_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON))
# 
# typedef struct _OrgProjectUsefulInterfaceSkeleton OrgProjectUsefulInterfaceSkeleton;
# typedef struct _OrgProjectUsefulInterfaceSkeletonClass OrgProjectUsefulInterfaceSkeletonClass;
# typedef struct _OrgProjectUsefulInterfaceSkeletonPrivate OrgProjectUsefulInterfaceSkeletonPrivate;
# 
# struct _OrgProjectUsefulInterfaceSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   OrgProjectUsefulInterfaceSkeletonPrivate *priv;
# };
# 
# struct _OrgProjectUsefulInterfaceSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType org_project_useful_interface_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectUsefulInterfaceSkeleton, g_object_unref)
# #endif
# 
# OrgProjectUsefulInterface *org_project_useful_interface_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 2 __main__.TestCodegen.test_dbus_types
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpk2wt_0xv
# /tmp/tmpk2wt_0xv/tmprrwdj8xm.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="{vs}" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmprrwdj8xm.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "{vs}". "v" is not a valid type for dictionary keys at position 1.
# /tmp/tmpk2wt_0xv/tmpax0pvi4x.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(ss(s{{sv}s}))" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpax0pvi4x.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "(ss(s{{sv}s}))". "{" is not a valid type for dictionary keys at position 6.
# /tmp/tmpk2wt_0xv/tmp_0kyxd51.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="{s" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmp_0kyxd51.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "{s". Error parsing string or brackets not closed.
# /tmp/tmpk2wt_0xv/tmprsq43fu8.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(s{sss})" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmprsq43fu8.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "(s{sss})". Dict must end with "}" at position 5.
# /tmp/tmpk2wt_0xv/tmpvh88rmxe.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="z" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpvh88rmxe.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "z". "z" is not a valid D-Bus type.
# /tmp/tmpk2wt_0xv/tmph1a4td0u.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(ssms)" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmph1a4td0u.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "(ssms)". "m" is not a valid D-Bus type.
# /tmp/tmpk2wt_0xv/tmpfkewmwb3.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpfkewmwb3.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "(". Error parsing string or brackets not closed.
# /tmp/tmpk2wt_0xv/tmpq1s_cz1q.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(((ss))" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpq1s_cz1q.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "(((ss))". Error parsing string or brackets not closed.
# /tmp/tmpk2wt_0xv/tmp8p4d29ly.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmp8p4d29ly.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas". Too much recursion beginning at 129.
# /tmp/tmpk2wt_0xv/tmpe4dj2x33.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((s))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpe4dj2x33.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: D-Bus maximum signature length of 255 exceeded.
# /tmp/tmpk2wt_0xv/tmp7zkxrtiy.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{sv}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmp7zkxrtiy.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: D-Bus maximum signature length of 255 exceeded.
# /tmp/tmpk2wt_0xv/tmpqwhowwvl.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaa{sv})" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpqwhowwvl.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Bad signature "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaa{sv})". Too much recursion beginning at 129.
# /tmp/tmpk2wt_0xv/tmp4j42aiu7.xml: 
#                 <node>
#                   <interface name="BadTypes">
#                     <property type="(ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss)" name="BadPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmp4j42aiu7.xml', '--output', '-', '--body']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: D-Bus maximum signature length of 255 exceeded.
# /tmp/tmpk2wt_0xv/tmpa6xwh0ee.xml: 
#                 <node>
#                   <interface name="GoodTypes">
#                     <property type="si{s{b(ybnqiuxtdh)}}{yv}{nv}{dv}" name="GoodPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmpa6xwh0ee.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface GoodTypes
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:GoodTypes
#  * @title: GoodTypes
#  * @short_description: Generated C code for the GoodTypes D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for GoodTypes ---- */
# 
# static const _ExtendedGDBusPropertyInfo _good_types_property_info_good_property_type =
# {
#   {
#     -1,
#     (gchar *) "GoodPropertyType",
#     (gchar *) "si{s{b(ybnqiuxtdh)}}{yv}{nv}{dv}",
#     G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
#     NULL
#   },
#   "good-property-type",
#   FALSE,
#   TRUE
# };
# 
# static const GDBusPropertyInfo * const _good_types_property_info_pointers[] =
# {
#   &_good_types_property_info_good_property_type.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _good_types_interface_info =
# {
#   {
#     -1,
#     (gchar *) "GoodTypes",
#     NULL,
#     NULL,
#     (GDBusPropertyInfo **) &_good_types_property_info_pointers,
#     NULL
#   },
#   "good-types",
# };
# 
# 
# /**
#  * good_types_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# good_types_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct;
# }
# 
# /**
#  * good_types_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# good_types_override_properties (GObjectClass *klass, guint property_id_begin)
# {
#   g_object_class_override_property (klass, property_id_begin++, "good-property-type");
#   return property_id_begin - 1;
# }
# 
# 
# 
# /**
#  * GoodTypes:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  */
# 
# /**
#  * GoodTypesIface:
#  * @parent_iface: The parent interface.
#  * @get_good_property_type: Getter for the #GoodTypes:good-property-type property.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  */
# 
# typedef GoodTypesIface GoodTypesInterface;
# G_DEFINE_INTERFACE (GoodTypes, good_types, G_TYPE_OBJECT)
# 
# static void
# good_types_default_init (GoodTypesIface *iface)
# {
#   /* GObject properties for D-Bus properties: */
#   /**
#    * GoodTypes:good-property-type:
#    *
#    * Represents the D-Bus property <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link>.
#    *
#    * 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.
#    */
#   g_object_interface_install_property (iface,
#     g_param_spec_variant ("good-property-type", "GoodPropertyType", "GoodPropertyType", G_VARIANT_TYPE ("si{s{b(ybnqiuxtdh)}}{yv}{nv}{dv}"), NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
# }
# 
# /**
#  * good_types_get_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Gets the value of the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use good_types_dup_good_property_type() if on another thread.
#  *
#  * Returns: (transfer none) (nullable): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
#  */
# GVariant *
# good_types_get_good_property_type (GoodTypes *object)
# {
#   g_return_val_if_fail (IS_GOOD_TYPES (object), NULL);
# 
#   return GOOD_TYPES_GET_IFACE (object)->get_good_property_type (object);
# }
# 
# /**
#  * good_types_dup_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Gets a copy of the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * Returns: (transfer full) (nullable): The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
#  */
# GVariant *
# good_types_dup_good_property_type (GoodTypes *object)
# {
#   GVariant *value;
#   g_object_get (G_OBJECT (object), "good-property-type", &value, NULL);
#   return value;
# }
# 
# /**
#  * good_types_set_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  * @value: The value to set.
#  *
#  * Sets the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property to @value.
#  *
#  * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
#  */
# void
# good_types_set_good_property_type (GoodTypes *object, GVariant *value)
# {
#   g_object_set (G_OBJECT (object), "good-property-type", value, NULL);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * GoodTypesProxy:
#  *
#  * The <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Proxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * GoodTypesProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Proxy.
#  */
# 
# struct _GoodTypesProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void good_types_proxy_iface_init (GoodTypesIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (GoodTypesProxy, good_types_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (GoodTypesProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (GoodTypesProxy, good_types_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_proxy_iface_init))
# 
# #endif
# static void
# good_types_proxy_finalize (GObject *object)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (good_types_proxy_parent_class)->finalize (object);
# }
# 
# static void
# good_types_proxy_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
#   if (info->use_gvariant)
#     {
#       g_value_set_variant (value, variant);
#     }
#   else
#     {
#       if (variant != NULL)
#         g_dbus_gvariant_to_gvalue (variant, value);
#     }
#   if (variant != NULL)
#     g_variant_unref (variant);
# }
# 
# static void
# good_types_proxy_set_property_cb (GDBusProxy *proxy,
#   GAsyncResult *res,
#   gpointer      user_data)
# {
#   const _ExtendedGDBusPropertyInfo *info = user_data;
#   GError *error;
#   GVariant *_ret;
#   error = NULL;
#   _ret = g_dbus_proxy_call_finish (proxy, res, &error);
#   if (!_ret)
#     {
#       g_warning ("Error setting property '%s' on interface GoodTypes: %s (%s, %d)",
#                  info->parent_struct.name, 
#                  error->message, g_quark_to_string (error->domain), error->code);
#       g_error_free (error);
#     }
#   else
#     {
#       g_variant_unref (_ret);
#     }
# }
# 
# static void
# good_types_proxy_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
#   g_dbus_proxy_call (G_DBUS_PROXY (object),
#     "org.freedesktop.DBus.Properties.Set",
#     g_variant_new ("(ssv)", "GoodTypes", info->parent_struct.name, variant),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     NULL, (GAsyncReadyCallback) good_types_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
#   g_variant_unref (variant);
# }
# 
# static void
# good_types_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_GOOD_TYPES);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_GOOD_TYPES);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# good_types_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static GVariant *
# good_types_proxy_get_good_property_type (GoodTypes *object)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (object);
#   GVariant *variant;
#   GVariant *value = NULL;
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "GoodPropertyType");
#   value = variant;
#   if (variant != NULL)
#     g_variant_unref (variant);
#   return value;
# }
# 
# static void
# good_types_proxy_init (GoodTypesProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = good_types_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_GOOD_TYPES_PROXY, GoodTypesProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), good_types_interface_info ());
# }
# 
# static void
# good_types_proxy_class_init (GoodTypesProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = good_types_proxy_finalize;
#   gobject_class->get_property = good_types_proxy_get_property;
#   gobject_class->set_property = good_types_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = good_types_proxy_g_signal;
#   proxy_class->g_properties_changed = good_types_proxy_g_properties_changed;
# 
#   good_types_override_properties (gobject_class, 1);
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (GoodTypesProxyPrivate));
# #endif
# }
# 
# static void
# good_types_proxy_iface_init (GoodTypesIface *iface)
# {
#   iface->get_good_property_type = good_types_proxy_get_good_property_type;
# }
# 
# /**
#  * good_types_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call good_types_proxy_new_finish() to get the result of the operation.
#  *
#  * See good_types_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# good_types_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_GOOD_TYPES_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", "GoodTypes", NULL);
# }
# 
# /**
#  * good_types_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to good_types_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with good_types_proxy_new().
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * good_types_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See good_types_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_GOOD_TYPES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "GoodTypes", NULL);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * good_types_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like good_types_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call good_types_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See good_types_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# good_types_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_GOOD_TYPES_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", "GoodTypes", NULL);
# }
# 
# /**
#  * good_types_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to good_types_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with good_types_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * good_types_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like good_types_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See good_types_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_GOOD_TYPES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "GoodTypes", NULL);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * GoodTypesSkeleton:
#  *
#  * The <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Skeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * GoodTypesSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Skeleton.
#  */
# 
# struct _GoodTypesSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _good_types_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_GOOD_TYPES);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_GOOD_TYPES);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _good_types_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _good_types_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _good_types_skeleton_vtable =
# {
#   _good_types_skeleton_handle_method_call,
#   _good_types_skeleton_handle_get_property,
#   _good_types_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# good_types_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return good_types_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# good_types_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_good_types_skeleton_vtable;
# }
# 
# static GVariant *
# good_types_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_good_types_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _good_types_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _good_types_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _good_types_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)), "GoodTypes", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static gboolean _good_types_emit_changed (gpointer user_data);
# 
# static void
# good_types_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (_skeleton);
#   gboolean emit_changed = FALSE;
# 
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     {
#       g_source_destroy (skeleton->priv->changed_properties_idle_source);
#       skeleton->priv->changed_properties_idle_source = NULL;
#       emit_changed = TRUE;
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# 
#   if (emit_changed)
#     _good_types_emit_changed (skeleton);
# }
# 
# static void good_types_skeleton_iface_init (GoodTypesIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (GoodTypesSkeleton, good_types_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (GoodTypesSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (GoodTypesSkeleton, good_types_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_skeleton_iface_init))
# 
# #endif
# static void
# good_types_skeleton_finalize (GObject *object)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   guint n;
#   for (n = 0; n < 1; n++)
#     g_value_unset (&skeleton->priv->properties[n]);
#   g_free (skeleton->priv->properties);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (good_types_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# good_types_skeleton_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   g_mutex_lock (&skeleton->priv->lock);
#   g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static gboolean
# _good_types_emit_changed (gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GList *l;
#   GVariantBuilder builder;
#   GVariantBuilder invalidated_builder;
#   guint num_changes;
# 
#   g_mutex_lock (&skeleton->priv->lock);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init_static (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #else
#   g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #endif
#   for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
#     {
#       ChangedProperty *cp = l->data;
#       GVariant *variant;
#       const GValue *cur_value;
# 
#       cur_value = &skeleton->priv->properties[cp->prop_id - 1];
#       if (!_g_value_equal (cur_value, &cp->orig_value))
#         {
#           variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
#           g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
#           g_variant_unref (variant);
#           num_changes++;
#         }
#     }
#   if (num_changes > 0)
#     {
#       GList *connections, *ll;
#       GVariant *signal_variant;
#       signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "GoodTypes",
#                                            &builder, &invalidated_builder));
#       connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
#       for (ll = connections; ll != NULL; ll = ll->next)
#         {
#           GDBusConnection *connection = ll->data;
# 
#           g_dbus_connection_emit_signal (connection,
#                                          NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
#                                          "org.freedesktop.DBus.Properties",
#                                          "PropertiesChanged",
#                                          signal_variant,
#                                          NULL);
#         }
#       g_variant_unref (signal_variant);
#       g_list_free_full (connections, g_object_unref);
#     }
#   else
#     {
#       g_variant_builder_clear (&builder);
#       g_variant_builder_clear (&invalidated_builder);
#     }
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   skeleton->priv->changed_properties = NULL;
#   skeleton->priv->changed_properties_idle_source = NULL;
#   g_mutex_unlock (&skeleton->priv->lock);
#   return FALSE;
# }
# 
# static void
# _good_types_schedule_emit_changed (GoodTypesSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
# {
#   ChangedProperty *cp;
#   GList *l;
#   cp = NULL;
#   for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
#     {
#       ChangedProperty *i_cp = l->data;
#       if (i_cp->info == info)
#         {
#           cp = i_cp;
#           break;
#         }
#     }
#   if (cp == NULL)
#     {
#       cp = g_new0 (ChangedProperty, 1);
#       cp->prop_id = prop_id;
#       cp->info = info;
#       skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
#       g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
#       g_value_copy (orig_value, &cp->orig_value);
#     }
# }
# 
# static void
# good_types_skeleton_notify (GObject      *object,
#   GParamSpec *pspec G_GNUC_UNUSED)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties != NULL &&
#       skeleton->priv->changed_properties_idle_source == NULL)
#     {
#       skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
#       g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
#       g_source_set_callback (skeleton->priv->changed_properties_idle_source, _good_types_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
#       g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _good_types_emit_changed");
#       g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
#       g_source_unref (skeleton->priv->changed_properties_idle_source);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static void
# good_types_skeleton_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   g_mutex_lock (&skeleton->priv->lock);
#   g_object_freeze_notify (object);
#   if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
#     {
#       if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
#           info->emits_changed_signal)
#         _good_types_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
#       g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
#       g_object_notify_by_pspec (object, pspec);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
#   g_object_thaw_notify (object);
# }
# 
# static void
# good_types_skeleton_init (GoodTypesSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = good_types_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_GOOD_TYPES_SKELETON, GoodTypesSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
#   skeleton->priv->properties = g_new0 (GValue, 1);
#   g_value_init (&skeleton->priv->properties[0], G_TYPE_VARIANT);
# }
# 
# static GVariant *
# good_types_skeleton_get_good_property_type (GoodTypes *object)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   GVariant *value;
#   g_mutex_lock (&skeleton->priv->lock);
#   value = g_marshal_value_peek_variant (&(skeleton->priv->properties[0]));
#   g_mutex_unlock (&skeleton->priv->lock);
#   return value;
# }
# 
# static void
# good_types_skeleton_class_init (GoodTypesSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = good_types_skeleton_finalize;
#   gobject_class->get_property = good_types_skeleton_get_property;
#   gobject_class->set_property = good_types_skeleton_set_property;
#   gobject_class->notify       = good_types_skeleton_notify;
# 
# 
#   good_types_override_properties (gobject_class, 1);
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = good_types_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = good_types_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = good_types_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = good_types_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (GoodTypesSkeletonPrivate));
# #endif
# }
# 
# static void
# good_types_skeleton_iface_init (GoodTypesIface *iface)
# {
#   iface->get_good_property_type = good_types_skeleton_get_good_property_type;
# }
# 
# /**
#  * good_types_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Returns: (transfer full) (type GoodTypesSkeleton): The skeleton object.
#  */
# GoodTypes *
# good_types_skeleton_new (void)
# {
#   return GOOD_TYPES (g_object_new (TYPE_GOOD_TYPES_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpk2wt_0xv/tmp5a0blbr0.xml: 
#                 <node>
#                   <interface name="GoodTypes">
#                     <property type="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas" name="GoodPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmp5a0blbr0.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface GoodTypes
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:GoodTypes
#  * @title: GoodTypes
#  * @short_description: Generated C code for the GoodTypes D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for GoodTypes ---- */
# 
# static const _ExtendedGDBusPropertyInfo _good_types_property_info_good_property_type =
# {
#   {
#     -1,
#     (gchar *) "GoodPropertyType",
#     (gchar *) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas",
#     G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
#     NULL
#   },
#   "good-property-type",
#   FALSE,
#   TRUE
# };
# 
# static const GDBusPropertyInfo * const _good_types_property_info_pointers[] =
# {
#   &_good_types_property_info_good_property_type.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _good_types_interface_info =
# {
#   {
#     -1,
#     (gchar *) "GoodTypes",
#     NULL,
#     NULL,
#     (GDBusPropertyInfo **) &_good_types_property_info_pointers,
#     NULL
#   },
#   "good-types",
# };
# 
# 
# /**
#  * good_types_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# good_types_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct;
# }
# 
# /**
#  * good_types_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# good_types_override_properties (GObjectClass *klass, guint property_id_begin)
# {
#   g_object_class_override_property (klass, property_id_begin++, "good-property-type");
#   return property_id_begin - 1;
# }
# 
# 
# 
# /**
#  * GoodTypes:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  */
# 
# /**
#  * GoodTypesIface:
#  * @parent_iface: The parent interface.
#  * @get_good_property_type: Getter for the #GoodTypes:good-property-type property.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  */
# 
# typedef GoodTypesIface GoodTypesInterface;
# G_DEFINE_INTERFACE (GoodTypes, good_types, G_TYPE_OBJECT)
# 
# static void
# good_types_default_init (GoodTypesIface *iface)
# {
#   /* GObject properties for D-Bus properties: */
#   /**
#    * GoodTypes:good-property-type:
#    *
#    * Represents the D-Bus property <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link>.
#    *
#    * 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.
#    */
#   g_object_interface_install_property (iface,
#     g_param_spec_variant ("good-property-type", "GoodPropertyType", "GoodPropertyType", G_VARIANT_TYPE ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas"), NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
# }
# 
# /**
#  * good_types_get_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Gets the value of the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use good_types_dup_good_property_type() if on another thread.
#  *
#  * Returns: (transfer none) (nullable): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
#  */
# GVariant *
# good_types_get_good_property_type (GoodTypes *object)
# {
#   g_return_val_if_fail (IS_GOOD_TYPES (object), NULL);
# 
#   return GOOD_TYPES_GET_IFACE (object)->get_good_property_type (object);
# }
# 
# /**
#  * good_types_dup_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Gets a copy of the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * Returns: (transfer full) (nullable): The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
#  */
# GVariant *
# good_types_dup_good_property_type (GoodTypes *object)
# {
#   GVariant *value;
#   g_object_get (G_OBJECT (object), "good-property-type", &value, NULL);
#   return value;
# }
# 
# /**
#  * good_types_set_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  * @value: The value to set.
#  *
#  * Sets the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property to @value.
#  *
#  * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
#  */
# void
# good_types_set_good_property_type (GoodTypes *object, GVariant *value)
# {
#   g_object_set (G_OBJECT (object), "good-property-type", value, NULL);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * GoodTypesProxy:
#  *
#  * The <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Proxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * GoodTypesProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Proxy.
#  */
# 
# struct _GoodTypesProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void good_types_proxy_iface_init (GoodTypesIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (GoodTypesProxy, good_types_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (GoodTypesProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (GoodTypesProxy, good_types_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_proxy_iface_init))
# 
# #endif
# static void
# good_types_proxy_finalize (GObject *object)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (good_types_proxy_parent_class)->finalize (object);
# }
# 
# static void
# good_types_proxy_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
#   if (info->use_gvariant)
#     {
#       g_value_set_variant (value, variant);
#     }
#   else
#     {
#       if (variant != NULL)
#         g_dbus_gvariant_to_gvalue (variant, value);
#     }
#   if (variant != NULL)
#     g_variant_unref (variant);
# }
# 
# static void
# good_types_proxy_set_property_cb (GDBusProxy *proxy,
#   GAsyncResult *res,
#   gpointer      user_data)
# {
#   const _ExtendedGDBusPropertyInfo *info = user_data;
#   GError *error;
#   GVariant *_ret;
#   error = NULL;
#   _ret = g_dbus_proxy_call_finish (proxy, res, &error);
#   if (!_ret)
#     {
#       g_warning ("Error setting property '%s' on interface GoodTypes: %s (%s, %d)",
#                  info->parent_struct.name, 
#                  error->message, g_quark_to_string (error->domain), error->code);
#       g_error_free (error);
#     }
#   else
#     {
#       g_variant_unref (_ret);
#     }
# }
# 
# static void
# good_types_proxy_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
#   g_dbus_proxy_call (G_DBUS_PROXY (object),
#     "org.freedesktop.DBus.Properties.Set",
#     g_variant_new ("(ssv)", "GoodTypes", info->parent_struct.name, variant),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     NULL, (GAsyncReadyCallback) good_types_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
#   g_variant_unref (variant);
# }
# 
# static void
# good_types_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_GOOD_TYPES);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_GOOD_TYPES);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# good_types_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static GVariant *
# good_types_proxy_get_good_property_type (GoodTypes *object)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (object);
#   GVariant *variant;
#   GVariant *value = NULL;
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "GoodPropertyType");
#   value = variant;
#   if (variant != NULL)
#     g_variant_unref (variant);
#   return value;
# }
# 
# static void
# good_types_proxy_init (GoodTypesProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = good_types_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_GOOD_TYPES_PROXY, GoodTypesProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), good_types_interface_info ());
# }
# 
# static void
# good_types_proxy_class_init (GoodTypesProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = good_types_proxy_finalize;
#   gobject_class->get_property = good_types_proxy_get_property;
#   gobject_class->set_property = good_types_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = good_types_proxy_g_signal;
#   proxy_class->g_properties_changed = good_types_proxy_g_properties_changed;
# 
#   good_types_override_properties (gobject_class, 1);
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (GoodTypesProxyPrivate));
# #endif
# }
# 
# static void
# good_types_proxy_iface_init (GoodTypesIface *iface)
# {
#   iface->get_good_property_type = good_types_proxy_get_good_property_type;
# }
# 
# /**
#  * good_types_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call good_types_proxy_new_finish() to get the result of the operation.
#  *
#  * See good_types_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# good_types_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_GOOD_TYPES_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", "GoodTypes", NULL);
# }
# 
# /**
#  * good_types_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to good_types_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with good_types_proxy_new().
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * good_types_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See good_types_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_GOOD_TYPES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "GoodTypes", NULL);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * good_types_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like good_types_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call good_types_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See good_types_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# good_types_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_GOOD_TYPES_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", "GoodTypes", NULL);
# }
# 
# /**
#  * good_types_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to good_types_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with good_types_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * good_types_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like good_types_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See good_types_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_GOOD_TYPES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "GoodTypes", NULL);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * GoodTypesSkeleton:
#  *
#  * The <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Skeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * GoodTypesSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Skeleton.
#  */
# 
# struct _GoodTypesSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _good_types_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_GOOD_TYPES);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_GOOD_TYPES);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _good_types_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _good_types_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _good_types_skeleton_vtable =
# {
#   _good_types_skeleton_handle_method_call,
#   _good_types_skeleton_handle_get_property,
#   _good_types_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# good_types_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return good_types_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# good_types_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_good_types_skeleton_vtable;
# }
# 
# static GVariant *
# good_types_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_good_types_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _good_types_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _good_types_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _good_types_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)), "GoodTypes", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static gboolean _good_types_emit_changed (gpointer user_data);
# 
# static void
# good_types_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (_skeleton);
#   gboolean emit_changed = FALSE;
# 
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     {
#       g_source_destroy (skeleton->priv->changed_properties_idle_source);
#       skeleton->priv->changed_properties_idle_source = NULL;
#       emit_changed = TRUE;
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# 
#   if (emit_changed)
#     _good_types_emit_changed (skeleton);
# }
# 
# static void good_types_skeleton_iface_init (GoodTypesIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (GoodTypesSkeleton, good_types_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (GoodTypesSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (GoodTypesSkeleton, good_types_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_skeleton_iface_init))
# 
# #endif
# static void
# good_types_skeleton_finalize (GObject *object)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   guint n;
#   for (n = 0; n < 1; n++)
#     g_value_unset (&skeleton->priv->properties[n]);
#   g_free (skeleton->priv->properties);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (good_types_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# good_types_skeleton_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   g_mutex_lock (&skeleton->priv->lock);
#   g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static gboolean
# _good_types_emit_changed (gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GList *l;
#   GVariantBuilder builder;
#   GVariantBuilder invalidated_builder;
#   guint num_changes;
# 
#   g_mutex_lock (&skeleton->priv->lock);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init_static (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #else
#   g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #endif
#   for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
#     {
#       ChangedProperty *cp = l->data;
#       GVariant *variant;
#       const GValue *cur_value;
# 
#       cur_value = &skeleton->priv->properties[cp->prop_id - 1];
#       if (!_g_value_equal (cur_value, &cp->orig_value))
#         {
#           variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
#           g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
#           g_variant_unref (variant);
#           num_changes++;
#         }
#     }
#   if (num_changes > 0)
#     {
#       GList *connections, *ll;
#       GVariant *signal_variant;
#       signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "GoodTypes",
#                                            &builder, &invalidated_builder));
#       connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
#       for (ll = connections; ll != NULL; ll = ll->next)
#         {
#           GDBusConnection *connection = ll->data;
# 
#           g_dbus_connection_emit_signal (connection,
#                                          NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
#                                          "org.freedesktop.DBus.Properties",
#                                          "PropertiesChanged",
#                                          signal_variant,
#                                          NULL);
#         }
#       g_variant_unref (signal_variant);
#       g_list_free_full (connections, g_object_unref);
#     }
#   else
#     {
#       g_variant_builder_clear (&builder);
#       g_variant_builder_clear (&invalidated_builder);
#     }
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   skeleton->priv->changed_properties = NULL;
#   skeleton->priv->changed_properties_idle_source = NULL;
#   g_mutex_unlock (&skeleton->priv->lock);
#   return FALSE;
# }
# 
# static void
# _good_types_schedule_emit_changed (GoodTypesSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
# {
#   ChangedProperty *cp;
#   GList *l;
#   cp = NULL;
#   for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
#     {
#       ChangedProperty *i_cp = l->data;
#       if (i_cp->info == info)
#         {
#           cp = i_cp;
#           break;
#         }
#     }
#   if (cp == NULL)
#     {
#       cp = g_new0 (ChangedProperty, 1);
#       cp->prop_id = prop_id;
#       cp->info = info;
#       skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
#       g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
#       g_value_copy (orig_value, &cp->orig_value);
#     }
# }
# 
# static void
# good_types_skeleton_notify (GObject      *object,
#   GParamSpec *pspec G_GNUC_UNUSED)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties != NULL &&
#       skeleton->priv->changed_properties_idle_source == NULL)
#     {
#       skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
#       g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
#       g_source_set_callback (skeleton->priv->changed_properties_idle_source, _good_types_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
#       g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _good_types_emit_changed");
#       g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
#       g_source_unref (skeleton->priv->changed_properties_idle_source);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static void
# good_types_skeleton_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   g_mutex_lock (&skeleton->priv->lock);
#   g_object_freeze_notify (object);
#   if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
#     {
#       if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
#           info->emits_changed_signal)
#         _good_types_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
#       g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
#       g_object_notify_by_pspec (object, pspec);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
#   g_object_thaw_notify (object);
# }
# 
# static void
# good_types_skeleton_init (GoodTypesSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = good_types_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_GOOD_TYPES_SKELETON, GoodTypesSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
#   skeleton->priv->properties = g_new0 (GValue, 1);
#   g_value_init (&skeleton->priv->properties[0], G_TYPE_VARIANT);
# }
# 
# static GVariant *
# good_types_skeleton_get_good_property_type (GoodTypes *object)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   GVariant *value;
#   g_mutex_lock (&skeleton->priv->lock);
#   value = g_marshal_value_peek_variant (&(skeleton->priv->properties[0]));
#   g_mutex_unlock (&skeleton->priv->lock);
#   return value;
# }
# 
# static void
# good_types_skeleton_class_init (GoodTypesSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = good_types_skeleton_finalize;
#   gobject_class->get_property = good_types_skeleton_get_property;
#   gobject_class->set_property = good_types_skeleton_set_property;
#   gobject_class->notify       = good_types_skeleton_notify;
# 
# 
#   good_types_override_properties (gobject_class, 1);
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = good_types_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = good_types_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = good_types_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = good_types_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (GoodTypesSkeletonPrivate));
# #endif
# }
# 
# static void
# good_types_skeleton_iface_init (GoodTypesIface *iface)
# {
#   iface->get_good_property_type = good_types_skeleton_get_good_property_type;
# }
# 
# /**
#  * good_types_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Returns: (transfer full) (type GoodTypesSkeleton): The skeleton object.
#  */
# GoodTypes *
# good_types_skeleton_new (void)
# {
#   return GOOD_TYPES (g_object_new (TYPE_GOOD_TYPES_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpk2wt_0xv/tmp38bclkqv.xml: 
#                 <node>
#                   <interface name="GoodTypes">
#                     <property type="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa{sv})" name="GoodPropertyType" access="read" />
#                   </interface>
#                 </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk2wt_0xv/tmp38bclkqv.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface GoodTypes
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:GoodTypes
#  * @title: GoodTypes
#  * @short_description: Generated C code for the GoodTypes D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for GoodTypes ---- */
# 
# static const _ExtendedGDBusPropertyInfo _good_types_property_info_good_property_type =
# {
#   {
#     -1,
#     (gchar *) "GoodPropertyType",
#     (gchar *) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa{sv})",
#     G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
#     NULL
#   },
#   "good-property-type",
#   FALSE,
#   TRUE
# };
# 
# static const GDBusPropertyInfo * const _good_types_property_info_pointers[] =
# {
#   &_good_types_property_info_good_property_type.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _good_types_interface_info =
# {
#   {
#     -1,
#     (gchar *) "GoodTypes",
#     NULL,
#     NULL,
#     (GDBusPropertyInfo **) &_good_types_property_info_pointers,
#     NULL
#   },
#   "good-types",
# };
# 
# 
# /**
#  * good_types_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# good_types_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct;
# }
# 
# /**
#  * good_types_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link> interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# good_types_override_properties (GObjectClass *klass, guint property_id_begin)
# {
#   g_object_class_override_property (klass, property_id_begin++, "good-property-type");
#   return property_id_begin - 1;
# }
# 
# 
# 
# /**
#  * GoodTypes:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  */
# 
# /**
#  * GoodTypesIface:
#  * @parent_iface: The parent interface.
#  * @get_good_property_type: Getter for the #GoodTypes:good-property-type property.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  */
# 
# typedef GoodTypesIface GoodTypesInterface;
# G_DEFINE_INTERFACE (GoodTypes, good_types, G_TYPE_OBJECT)
# 
# static void
# good_types_default_init (GoodTypesIface *iface)
# {
#   /* GObject properties for D-Bus properties: */
#   /**
#    * GoodTypes:good-property-type:
#    *
#    * Represents the D-Bus property <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link>.
#    *
#    * 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.
#    */
#   g_object_interface_install_property (iface,
#     g_param_spec_variant ("good-property-type", "GoodPropertyType", "GoodPropertyType", G_VARIANT_TYPE ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa{sv})"), NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
# }
# 
# /**
#  * good_types_get_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Gets the value of the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use good_types_dup_good_property_type() if on another thread.
#  *
#  * Returns: (transfer none) (nullable): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
#  */
# GVariant *
# good_types_get_good_property_type (GoodTypes *object)
# {
#   g_return_val_if_fail (IS_GOOD_TYPES (object), NULL);
# 
#   return GOOD_TYPES_GET_IFACE (object)->get_good_property_type (object);
# }
# 
# /**
#  * good_types_dup_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Gets a copy of the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * Returns: (transfer full) (nullable): The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
#  */
# GVariant *
# good_types_dup_good_property_type (GoodTypes *object)
# {
#   GVariant *value;
#   g_object_get (G_OBJECT (object), "good-property-type", &value, NULL);
#   return value;
# }
# 
# /**
#  * good_types_set_good_property_type: (skip)
#  * @object: A <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  * @value: The value to set.
#  *
#  * Sets the <link linkend="gdbus-property-GoodTypes.GoodPropertyType">"GoodPropertyType"</link> D-Bus property to @value.
#  *
#  * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
#  */
# void
# good_types_set_good_property_type (GoodTypes *object, GVariant *value)
# {
#   g_object_set (G_OBJECT (object), "good-property-type", value, NULL);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * GoodTypesProxy:
#  *
#  * The <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Proxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * GoodTypesProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Proxy.
#  */
# 
# struct _GoodTypesProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void good_types_proxy_iface_init (GoodTypesIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (GoodTypesProxy, good_types_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (GoodTypesProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (GoodTypesProxy, good_types_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_proxy_iface_init))
# 
# #endif
# static void
# good_types_proxy_finalize (GObject *object)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (good_types_proxy_parent_class)->finalize (object);
# }
# 
# static void
# good_types_proxy_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
#   if (info->use_gvariant)
#     {
#       g_value_set_variant (value, variant);
#     }
#   else
#     {
#       if (variant != NULL)
#         g_dbus_gvariant_to_gvalue (variant, value);
#     }
#   if (variant != NULL)
#     g_variant_unref (variant);
# }
# 
# static void
# good_types_proxy_set_property_cb (GDBusProxy *proxy,
#   GAsyncResult *res,
#   gpointer      user_data)
# {
#   const _ExtendedGDBusPropertyInfo *info = user_data;
#   GError *error;
#   GVariant *_ret;
#   error = NULL;
#   _ret = g_dbus_proxy_call_finish (proxy, res, &error);
#   if (!_ret)
#     {
#       g_warning ("Error setting property '%s' on interface GoodTypes: %s (%s, %d)",
#                  info->parent_struct.name, 
#                  error->message, g_quark_to_string (error->domain), error->code);
#       g_error_free (error);
#     }
#   else
#     {
#       g_variant_unref (_ret);
#     }
# }
# 
# static void
# good_types_proxy_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
#   g_dbus_proxy_call (G_DBUS_PROXY (object),
#     "org.freedesktop.DBus.Properties.Set",
#     g_variant_new ("(ssv)", "GoodTypes", info->parent_struct.name, variant),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     NULL, (GAsyncReadyCallback) good_types_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
#   g_variant_unref (variant);
# }
# 
# static void
# good_types_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_GOOD_TYPES);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_GOOD_TYPES);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# good_types_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static GVariant *
# good_types_proxy_get_good_property_type (GoodTypes *object)
# {
#   GoodTypesProxy *proxy = GOOD_TYPES_PROXY (object);
#   GVariant *variant;
#   GVariant *value = NULL;
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "GoodPropertyType");
#   value = variant;
#   if (variant != NULL)
#     g_variant_unref (variant);
#   return value;
# }
# 
# static void
# good_types_proxy_init (GoodTypesProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = good_types_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_GOOD_TYPES_PROXY, GoodTypesProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), good_types_interface_info ());
# }
# 
# static void
# good_types_proxy_class_init (GoodTypesProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = good_types_proxy_finalize;
#   gobject_class->get_property = good_types_proxy_get_property;
#   gobject_class->set_property = good_types_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = good_types_proxy_g_signal;
#   proxy_class->g_properties_changed = good_types_proxy_g_properties_changed;
# 
#   good_types_override_properties (gobject_class, 1);
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (GoodTypesProxyPrivate));
# #endif
# }
# 
# static void
# good_types_proxy_iface_init (GoodTypesIface *iface)
# {
#   iface->get_good_property_type = good_types_proxy_get_good_property_type;
# }
# 
# /**
#  * good_types_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call good_types_proxy_new_finish() to get the result of the operation.
#  *
#  * See good_types_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# good_types_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_GOOD_TYPES_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", "GoodTypes", NULL);
# }
# 
# /**
#  * good_types_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to good_types_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with good_types_proxy_new().
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * good_types_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See good_types_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_GOOD_TYPES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "GoodTypes", NULL);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * good_types_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like good_types_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call good_types_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See good_types_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# good_types_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_GOOD_TYPES_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", "GoodTypes", NULL);
# }
# 
# /**
#  * good_types_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to good_types_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with good_types_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * good_types_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like good_types_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See good_types_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type GoodTypesProxy): The constructed proxy object or %NULL if @error is set.
#  */
# GoodTypes *
# good_types_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_GOOD_TYPES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "GoodTypes", NULL);
#   if (ret != NULL)
#     return GOOD_TYPES (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * GoodTypesSkeleton:
#  *
#  * The <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Skeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * GoodTypesSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>Skeleton.
#  */
# 
# struct _GoodTypesSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _good_types_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_GOOD_TYPES);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_GOOD_TYPES);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _good_types_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _good_types_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_good_types_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _good_types_skeleton_vtable =
# {
#   _good_types_skeleton_handle_method_call,
#   _good_types_skeleton_handle_get_property,
#   _good_types_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# good_types_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return good_types_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# good_types_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_good_types_skeleton_vtable;
# }
# 
# static GVariant *
# good_types_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_good_types_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _good_types_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _good_types_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _good_types_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)), "GoodTypes", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static gboolean _good_types_emit_changed (gpointer user_data);
# 
# static void
# good_types_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (_skeleton);
#   gboolean emit_changed = FALSE;
# 
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     {
#       g_source_destroy (skeleton->priv->changed_properties_idle_source);
#       skeleton->priv->changed_properties_idle_source = NULL;
#       emit_changed = TRUE;
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# 
#   if (emit_changed)
#     _good_types_emit_changed (skeleton);
# }
# 
# static void good_types_skeleton_iface_init (GoodTypesIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (GoodTypesSkeleton, good_types_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (GoodTypesSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (GoodTypesSkeleton, good_types_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_GOOD_TYPES, good_types_skeleton_iface_init))
# 
# #endif
# static void
# good_types_skeleton_finalize (GObject *object)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   guint n;
#   for (n = 0; n < 1; n++)
#     g_value_unset (&skeleton->priv->properties[n]);
#   g_free (skeleton->priv->properties);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (good_types_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# good_types_skeleton_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   g_mutex_lock (&skeleton->priv->lock);
#   g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static gboolean
# _good_types_emit_changed (gpointer user_data)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (user_data);
#   GList *l;
#   GVariantBuilder builder;
#   GVariantBuilder invalidated_builder;
#   guint num_changes;
# 
#   g_mutex_lock (&skeleton->priv->lock);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init_static (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #else
#   g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #endif
#   for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
#     {
#       ChangedProperty *cp = l->data;
#       GVariant *variant;
#       const GValue *cur_value;
# 
#       cur_value = &skeleton->priv->properties[cp->prop_id - 1];
#       if (!_g_value_equal (cur_value, &cp->orig_value))
#         {
#           variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
#           g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
#           g_variant_unref (variant);
#           num_changes++;
#         }
#     }
#   if (num_changes > 0)
#     {
#       GList *connections, *ll;
#       GVariant *signal_variant;
#       signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "GoodTypes",
#                                            &builder, &invalidated_builder));
#       connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
#       for (ll = connections; ll != NULL; ll = ll->next)
#         {
#           GDBusConnection *connection = ll->data;
# 
#           g_dbus_connection_emit_signal (connection,
#                                          NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
#                                          "org.freedesktop.DBus.Properties",
#                                          "PropertiesChanged",
#                                          signal_variant,
#                                          NULL);
#         }
#       g_variant_unref (signal_variant);
#       g_list_free_full (connections, g_object_unref);
#     }
#   else
#     {
#       g_variant_builder_clear (&builder);
#       g_variant_builder_clear (&invalidated_builder);
#     }
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   skeleton->priv->changed_properties = NULL;
#   skeleton->priv->changed_properties_idle_source = NULL;
#   g_mutex_unlock (&skeleton->priv->lock);
#   return FALSE;
# }
# 
# static void
# _good_types_schedule_emit_changed (GoodTypesSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
# {
#   ChangedProperty *cp;
#   GList *l;
#   cp = NULL;
#   for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
#     {
#       ChangedProperty *i_cp = l->data;
#       if (i_cp->info == info)
#         {
#           cp = i_cp;
#           break;
#         }
#     }
#   if (cp == NULL)
#     {
#       cp = g_new0 (ChangedProperty, 1);
#       cp->prop_id = prop_id;
#       cp->info = info;
#       skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
#       g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
#       g_value_copy (orig_value, &cp->orig_value);
#     }
# }
# 
# static void
# good_types_skeleton_notify (GObject      *object,
#   GParamSpec *pspec G_GNUC_UNUSED)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties != NULL &&
#       skeleton->priv->changed_properties_idle_source == NULL)
#     {
#       skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
#       g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
#       g_source_set_callback (skeleton->priv->changed_properties_idle_source, _good_types_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
#       g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _good_types_emit_changed");
#       g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
#       g_source_unref (skeleton->priv->changed_properties_idle_source);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static void
# good_types_skeleton_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _good_types_property_info_pointers[prop_id - 1];
#   g_mutex_lock (&skeleton->priv->lock);
#   g_object_freeze_notify (object);
#   if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
#     {
#       if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
#           info->emits_changed_signal)
#         _good_types_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
#       g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
#       g_object_notify_by_pspec (object, pspec);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
#   g_object_thaw_notify (object);
# }
# 
# static void
# good_types_skeleton_init (GoodTypesSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = good_types_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_GOOD_TYPES_SKELETON, GoodTypesSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
#   skeleton->priv->properties = g_new0 (GValue, 1);
#   g_value_init (&skeleton->priv->properties[0], G_TYPE_VARIANT);
# }
# 
# static GVariant *
# good_types_skeleton_get_good_property_type (GoodTypes *object)
# {
#   GoodTypesSkeleton *skeleton = GOOD_TYPES_SKELETON (object);
#   GVariant *value;
#   g_mutex_lock (&skeleton->priv->lock);
#   value = g_marshal_value_peek_variant (&(skeleton->priv->properties[0]));
#   g_mutex_unlock (&skeleton->priv->lock);
#   return value;
# }
# 
# static void
# good_types_skeleton_class_init (GoodTypesSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = good_types_skeleton_finalize;
#   gobject_class->get_property = good_types_skeleton_get_property;
#   gobject_class->set_property = good_types_skeleton_set_property;
#   gobject_class->notify       = good_types_skeleton_notify;
# 
# 
#   good_types_override_properties (gobject_class, 1);
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = good_types_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = good_types_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = good_types_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = good_types_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (GoodTypesSkeletonPrivate));
# #endif
# }
# 
# static void
# good_types_skeleton_iface_init (GoodTypesIface *iface)
# {
#   iface->get_good_property_type = good_types_skeleton_get_good_property_type;
# }
# 
# /**
#  * good_types_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-GoodTypes.top_of_page">GoodTypes</link>.
#  *
#  * Returns: (transfer full) (type GoodTypesSkeleton): The skeleton object.
#  */
# GoodTypes *
# good_types_skeleton_new (void)
# {
#   return GOOD_TYPES (g_object_new (TYPE_GOOD_TYPES_SKELETON, NULL));
# }
# Error:
ok 3 __main__.TestCodegen.test_empty_interface_body
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpj8zf_ene
# /tmp/tmpj8zf_ene/tmp_847_bh8.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpj8zf_ene/tmp_847_bh8.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# Error:
ok 4 __main__.TestCodegen.test_empty_interface_header
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpgkodfpsq
# /tmp/tmpgkodfpsq/tmpctl1h8eu.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpgkodfpsq/tmpctl1h8eu.xml', '--output', '-', '--header']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 5 __main__.TestCodegen.test_empty_interface_info_body
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp9lu1m0vi
# /tmp/tmp9lu1m0vi/tmpxh9iapl2.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp9lu1m0vi/tmpxh9iapl2.xml', '--output', '-', '--interface-info-body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# Error:
ok 6 __main__.TestCodegen.test_empty_interface_info_header
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp8ocxnjpb
# /tmp/tmp8ocxnjpb/tmpzos74654.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp8ocxnjpb/tmpzos74654.xml', '--output', '-', '--interface-info-header']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 7 __main__.TestCodegen.test_generate_docbook
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmposvabfuh
# /tmp/tmposvabfuh/tmp6ui4v_sj.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <method name="RandomMethod"/>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmposvabfuh/tmp6ui4v_sj.xml', '--generate-docbook', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 8 __main__.TestCodegen.test_generate_md
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp3ksno5jy
# /tmp/tmp3ksno5jy/tmpqs8t7vwt.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <method name="RandomMethod"/>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp3ksno5jy/tmpqs8t7vwt.xml', '--generate-md', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 9 __main__.TestCodegen.test_generate_methods_marshaller_simple_method
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpv6a3wjny
# /tmp/tmpv6a3wjny/tmpbcewl8rn.xml: 
#             <node>
#               <interface name="org.project.CallableIface">
#                 <method name="SimpleMethod"/>
#               </interface>
#               <interface name="org.project.OtherCallableIface">
#                 <method name="SimpleMethod"/>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpv6a3wjny/tmpbcewl8rn.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.CallableIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectCallableIface
#  * @title: OrgProjectCallableIface
#  * @short_description: Generated C code for the org.project.CallableIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.CallableIface ---- */
# 
# static const _ExtendedGDBusMethodInfo _org_project_callable_iface_method_info_simple_method =
# {
#   {
#     -1,
#     (gchar *) "SimpleMethod",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-simple-method",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_callable_iface_method_info_pointers[] =
# {
#   &_org_project_callable_iface_method_info_simple_method.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_callable_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.CallableIface",
#     (GDBusMethodInfo **) &_org_project_callable_iface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-callable-iface",
# };
# 
# 
# /**
#  * org_project_callable_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_callable_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_callable_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectCallableIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_callable_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_callable_iface_method_marshal_simple_method (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectCallableIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  */
# 
# /**
#  * OrgProjectCallableIfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_simple_method: Handler for the #OrgProjectCallableIface::handle-simple-method signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  */
# 
# typedef OrgProjectCallableIfaceIface OrgProjectCallableIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectCallableIface, org_project_callable_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_callable_iface_default_init (OrgProjectCallableIfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectCallableIface::handle-simple-method:
#    * @object: A #OrgProjectCallableIface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-CallableIface.SimpleMethod">SimpleMethod()</link> D-Bus method.
#    *
#    * 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 org_project_callable_iface_complete_simple_method() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-simple-method",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectCallableIfaceIface, handle_simple_method),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_callable_iface_method_marshal_simple_method,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_callable_iface_call_simple_method:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.SimpleMethod">SimpleMethod()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_callable_iface_call_simple_method_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_call_simple_method_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_callable_iface_call_simple_method (
#     OrgProjectCallableIface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SimpleMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_callable_iface_call_simple_method_finish:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_call_simple_method().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_callable_iface_call_simple_method().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_simple_method_finish (
#     OrgProjectCallableIface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_call_simple_method_sync:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.SimpleMethod">SimpleMethod()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_call_simple_method() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_simple_method_sync (
#     OrgProjectCallableIface *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SimpleMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_complete_simple_method:
#  * @object: A #OrgProjectCallableIface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-CallableIface.SimpleMethod">SimpleMethod()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_callable_iface_complete_simple_method (
#     OrgProjectCallableIface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectCallableIfaceProxy:
#  *
#  * The #OrgProjectCallableIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectCallableIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectCallableIfaceProxy.
#  */
# 
# struct _OrgProjectCallableIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_callable_iface_proxy_iface_init (OrgProjectCallableIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceProxy, org_project_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectCallableIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceProxy, org_project_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_callable_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectCallableIfaceProxy *proxy = ORG_PROJECT_CALLABLE_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_callable_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_callable_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_callable_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_callable_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_callable_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectCallableIfaceProxy *proxy = ORG_PROJECT_CALLABLE_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_callable_iface_proxy_init (OrgProjectCallableIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_callable_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, OrgProjectCallableIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_callable_iface_interface_info ());
# }
# 
# static void
# org_project_callable_iface_proxy_class_init (OrgProjectCallableIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_callable_iface_proxy_finalize;
#   gobject_class->get_property = org_project_callable_iface_proxy_get_property;
#   gobject_class->set_property = org_project_callable_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_callable_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_callable_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectCallableIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_callable_iface_proxy_iface_init (OrgProjectCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_callable_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_callable_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_callable_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_CALLABLE_IFACE_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.project.CallableIface", NULL);
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_callable_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.CallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_callable_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_callable_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_callable_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_CALLABLE_IFACE_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.project.CallableIface", NULL);
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_callable_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_callable_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.CallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectCallableIfaceSkeleton:
#  *
#  * The #OrgProjectCallableIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectCallableIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectCallableIfaceSkeleton.
#  */
# 
# struct _OrgProjectCallableIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_callable_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_callable_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_callable_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_callable_iface_skeleton_vtable =
# {
#   _org_project_callable_iface_skeleton_handle_method_call,
#   _org_project_callable_iface_skeleton_handle_get_property,
#   _org_project_callable_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_callable_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_callable_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_callable_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_callable_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_callable_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_callable_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_callable_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_callable_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_callable_iface_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.project.CallableIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_callable_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_callable_iface_skeleton_iface_init (OrgProjectCallableIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceSkeleton, org_project_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectCallableIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceSkeleton, org_project_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_callable_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_callable_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_callable_iface_skeleton_init (OrgProjectCallableIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_callable_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_CALLABLE_IFACE_SKELETON, OrgProjectCallableIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_callable_iface_skeleton_class_init (OrgProjectCallableIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_callable_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_callable_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_callable_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_callable_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_callable_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectCallableIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_callable_iface_skeleton_iface_init (OrgProjectCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_callable_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceSkeleton): The skeleton object.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_CALLABLE_IFACE (g_object_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_SKELETON, NULL));
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.OtherCallableIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectOtherCallableIface
#  * @title: OrgProjectOtherCallableIface
#  * @short_description: Generated C code for the org.project.OtherCallableIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.OtherCallableIface ---- */
# 
# static const _ExtendedGDBusMethodInfo _org_project_other_callable_iface_method_info_simple_method =
# {
#   {
#     -1,
#     (gchar *) "SimpleMethod",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-simple-method",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_other_callable_iface_method_info_pointers[] =
# {
#   &_org_project_other_callable_iface_method_info_simple_method.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_other_callable_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.OtherCallableIface",
#     (GDBusMethodInfo **) &_org_project_other_callable_iface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-other-callable-iface",
# };
# 
# 
# /**
#  * org_project_other_callable_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_other_callable_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_other_callable_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectOtherCallableIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_other_callable_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_other_callable_iface_method_marshal_simple_method (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectOtherCallableIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>.
#  */
# 
# /**
#  * OrgProjectOtherCallableIfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_simple_method: Handler for the #OrgProjectOtherCallableIface::handle-simple-method signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>.
#  */
# 
# typedef OrgProjectOtherCallableIfaceIface OrgProjectOtherCallableIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectOtherCallableIface, org_project_other_callable_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_other_callable_iface_default_init (OrgProjectOtherCallableIfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectOtherCallableIface::handle-simple-method:
#    * @object: A #OrgProjectOtherCallableIface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-OtherCallableIface.SimpleMethod">SimpleMethod()</link> D-Bus method.
#    *
#    * 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 org_project_other_callable_iface_complete_simple_method() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-simple-method",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectOtherCallableIfaceIface, handle_simple_method),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_other_callable_iface_method_marshal_simple_method,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_other_callable_iface_call_simple_method:
#  * @proxy: A #OrgProjectOtherCallableIfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-OtherCallableIface.SimpleMethod">SimpleMethod()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_other_callable_iface_call_simple_method_finish() to get the result of the operation.
#  *
#  * See org_project_other_callable_iface_call_simple_method_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_other_callable_iface_call_simple_method (
#     OrgProjectOtherCallableIface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SimpleMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_other_callable_iface_call_simple_method_finish:
#  * @proxy: A #OrgProjectOtherCallableIfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_callable_iface_call_simple_method().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_other_callable_iface_call_simple_method().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_other_callable_iface_call_simple_method_finish (
#     OrgProjectOtherCallableIface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_call_simple_method_sync:
#  * @proxy: A #OrgProjectOtherCallableIfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-OtherCallableIface.SimpleMethod">SimpleMethod()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_callable_iface_call_simple_method() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_other_callable_iface_call_simple_method_sync (
#     OrgProjectOtherCallableIface *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SimpleMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_complete_simple_method:
#  * @object: A #OrgProjectOtherCallableIface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-OtherCallableIface.SimpleMethod">SimpleMethod()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_other_callable_iface_complete_simple_method (
#     OrgProjectOtherCallableIface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherCallableIfaceProxy:
#  *
#  * The #OrgProjectOtherCallableIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherCallableIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherCallableIfaceProxy.
#  */
# 
# struct _OrgProjectOtherCallableIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_other_callable_iface_proxy_iface_init (OrgProjectOtherCallableIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceProxy, org_project_other_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectOtherCallableIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceProxy, org_project_other_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_other_callable_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectOtherCallableIfaceProxy *proxy = ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_other_callable_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_callable_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_callable_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_callable_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_other_callable_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectOtherCallableIfaceProxy *proxy = ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_other_callable_iface_proxy_init (OrgProjectOtherCallableIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_other_callable_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY, OrgProjectOtherCallableIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_other_callable_iface_interface_info ());
# }
# 
# static void
# org_project_other_callable_iface_proxy_class_init (OrgProjectOtherCallableIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_other_callable_iface_proxy_finalize;
#   gobject_class->get_property = org_project_other_callable_iface_proxy_get_property;
#   gobject_class->set_property = org_project_other_callable_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_other_callable_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_other_callable_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherCallableIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_other_callable_iface_proxy_iface_init (OrgProjectOtherCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_other_callable_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_other_callable_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_callable_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_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.project.OtherCallableIface", NULL);
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_callable_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_callable_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_callable_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.OtherCallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_other_callable_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_other_callable_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_other_callable_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_other_callable_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_callable_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_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.project.OtherCallableIface", NULL);
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_callable_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_callable_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_other_callable_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_callable_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.OtherCallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherCallableIfaceSkeleton:
#  *
#  * The #OrgProjectOtherCallableIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherCallableIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherCallableIfaceSkeleton.
#  */
# 
# struct _OrgProjectOtherCallableIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_other_callable_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_other_callable_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_other_callable_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_other_callable_iface_skeleton_vtable =
# {
#   _org_project_other_callable_iface_skeleton_handle_method_call,
#   _org_project_other_callable_iface_skeleton_handle_get_property,
#   _org_project_other_callable_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_other_callable_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_other_callable_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_other_callable_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_other_callable_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_other_callable_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_other_callable_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_other_callable_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_other_callable_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_other_callable_iface_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.project.OtherCallableIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_other_callable_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_other_callable_iface_skeleton_iface_init (OrgProjectOtherCallableIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceSkeleton, org_project_other_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectOtherCallableIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceSkeleton, org_project_other_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_other_callable_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_other_callable_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_callable_iface_skeleton_init (OrgProjectOtherCallableIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_other_callable_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON, OrgProjectOtherCallableIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_other_callable_iface_skeleton_class_init (OrgProjectOtherCallableIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_other_callable_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_other_callable_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_other_callable_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_other_callable_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_other_callable_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherCallableIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_other_callable_iface_skeleton_iface_init (OrgProjectOtherCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_other_callable_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceSkeleton): The skeleton object.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_OTHER_CALLABLE_IFACE (g_object_new (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON, NULL));
# }
# Error:
ok 10 __main__.TestCodegen.test_generate_methods_marshaller_single_typed_in_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpur2usapg
# /tmp/tmpur2usapg/tmpfip3mrdx.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodB">
#                     <arg name="arg_b" type="b"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpfip3mrdx.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOOLEAN (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectBooleanFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         gboolean arg_arg_b,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectBooleanFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectBooleanFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_boolean (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_b_IN_ARG_arg_b =
# {
#   {
#     -1,
#     (gchar *) "arg_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_b_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_b_IN_ARG_arg_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_b =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodB",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_b_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-b",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_b (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOOLEAN (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_b: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-b signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-b:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_b: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_b() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-b",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_b),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_b,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_b:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_b: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_b_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_b_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_b (
#     OrgProjectUsefulInterface *proxy,
#     gboolean arg_arg_b,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodB",
#     g_variant_new ("(b)",
#                    arg_arg_b),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_b_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_b().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_b().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_b_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_b_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_b: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_b() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_b_sync (
#     OrgProjectUsefulInterface *proxy,
#     gboolean arg_arg_b,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodB",
#     g_variant_new ("(b)",
#                    arg_arg_b),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_b:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_b (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmp55iqb_l3.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodY">
#                     <arg name="arg_y" type="y"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmp55iqb_l3.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UCHAR (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectUcharFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         guchar arg_arg_y,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectUcharFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectUcharFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_uchar (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_y_IN_ARG_arg_y =
# {
#   {
#     -1,
#     (gchar *) "arg_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_y_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_y_IN_ARG_arg_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_y =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodY",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_y_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-y",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_y (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UCHAR (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_y: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-y signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-y:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_y: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_y() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-y",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_y),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_y,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UCHAR);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_y:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_y: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_y_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_y_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_y (
#     OrgProjectUsefulInterface *proxy,
#     guchar arg_arg_y,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodY",
#     g_variant_new ("(y)",
#                    arg_arg_y),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_y_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_y().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_y().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_y_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_y_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_y: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_y() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_y_sync (
#     OrgProjectUsefulInterface *proxy,
#     guchar arg_arg_y,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodY",
#     g_variant_new ("(y)",
#                    arg_arg_y),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_y:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_y (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpjl164iji.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodN">
#                     <arg name="arg_n" type="n"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpjl164iji.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_INT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectIntFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         gint16 arg_arg_n,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectIntFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectIntFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_int (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_n_IN_ARG_arg_n =
# {
#   {
#     -1,
#     (gchar *) "arg_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_n_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_n_IN_ARG_arg_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_n =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodN",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_n_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-n",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_n (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_INT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_n: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-n signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-n:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_n: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_n() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-n",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_n),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_n,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_INT);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_n:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_n: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_n_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_n_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_n (
#     OrgProjectUsefulInterface *proxy,
#     gint16 arg_arg_n,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodN",
#     g_variant_new ("(n)",
#                    arg_arg_n),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_n_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_n().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_n().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_n_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_n_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_n: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_n() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_n_sync (
#     OrgProjectUsefulInterface *proxy,
#     gint16 arg_arg_n,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodN",
#     g_variant_new ("(n)",
#                    arg_arg_n),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_n:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_n (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmp5p4ru4pb.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodQ">
#                     <arg name="arg_q" type="q"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmp5p4ru4pb.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectUintFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         guint16 arg_arg_q,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectUintFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectUintFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_uint (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_q_IN_ARG_arg_q =
# {
#   {
#     -1,
#     (gchar *) "arg_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_q_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_q_IN_ARG_arg_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_q =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodQ",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_q_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-q",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_q (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_q: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-q signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-q:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_q: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_q() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-q",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_q),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_q,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UINT);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_q:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_q: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_q_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_q_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_q (
#     OrgProjectUsefulInterface *proxy,
#     guint16 arg_arg_q,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodQ",
#     g_variant_new ("(q)",
#                    arg_arg_q),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_q_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_q().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_q().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_q_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_q_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_q: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_q() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_q_sync (
#     OrgProjectUsefulInterface *proxy,
#     guint16 arg_arg_q,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodQ",
#     g_variant_new ("(q)",
#                    arg_arg_q),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_q:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_q (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmprnxjj_1a.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodI">
#                     <arg name="arg_i" type="i"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmprnxjj_1a.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_INT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectIntFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         gint arg_arg_i,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectIntFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectIntFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_int (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_i_IN_ARG_arg_i =
# {
#   {
#     -1,
#     (gchar *) "arg_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_i_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_i_IN_ARG_arg_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_i =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodI",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_i_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-i",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_i (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_INT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_i: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-i signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-i:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_i: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_i() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-i",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_i),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_i,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_INT);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_i:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_i: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_i_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_i_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_i (
#     OrgProjectUsefulInterface *proxy,
#     gint arg_arg_i,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodI",
#     g_variant_new ("(i)",
#                    arg_arg_i),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_i_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_i().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_i().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_i_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_i_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_i: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_i() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_i_sync (
#     OrgProjectUsefulInterface *proxy,
#     gint arg_arg_i,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodI",
#     g_variant_new ("(i)",
#                    arg_arg_i),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_i:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_i (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpob7dz2jv.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodU">
#                     <arg name="arg_u" type="u"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpob7dz2jv.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectUintFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         guint arg_arg_u,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectUintFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectUintFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_uint (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_u_IN_ARG_arg_u =
# {
#   {
#     -1,
#     (gchar *) "arg_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_u_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_u_IN_ARG_arg_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_u =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodU",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_u_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-u",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_u (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_u: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-u signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-u:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_u: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_u() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-u",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_u),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_u,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UINT);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_u:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_u: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_u_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_u_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_u (
#     OrgProjectUsefulInterface *proxy,
#     guint arg_arg_u,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodU",
#     g_variant_new ("(u)",
#                    arg_arg_u),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_u_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_u().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_u().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_u_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_u_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_u: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_u() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_u_sync (
#     OrgProjectUsefulInterface *proxy,
#     guint arg_arg_u,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodU",
#     g_variant_new ("(u)",
#                    arg_arg_u),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_u:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_u (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmps8nddku4.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodX">
#                     <arg name="arg_x" type="x"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmps8nddku4.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_INT64 (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectInt64Func)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         gint64 arg_arg_x,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectInt64Func callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectInt64Func)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_int64 (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_x_IN_ARG_arg_x =
# {
#   {
#     -1,
#     (gchar *) "arg_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_x_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_x_IN_ARG_arg_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_x =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodX",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_x_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-x",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_x (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_INT64 (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_x: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-x signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-x:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_x: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_x() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-x",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_x),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_x,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_INT64);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_x:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_x: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_x_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_x_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_x (
#     OrgProjectUsefulInterface *proxy,
#     gint64 arg_arg_x,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodX",
#     g_variant_new ("(x)",
#                    arg_arg_x),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_x_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_x().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_x().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_x_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_x_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_x: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_x() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_x_sync (
#     OrgProjectUsefulInterface *proxy,
#     gint64 arg_arg_x,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodX",
#     g_variant_new ("(x)",
#                    arg_arg_x),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_x:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_x (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpkbokt1ok.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodT">
#                     <arg name="arg_t" type="t"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpkbokt1ok.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT64 (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectUint64Func)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         guint64 arg_arg_t,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectUint64Func callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectUint64Func)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_uint64 (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_t_IN_ARG_arg_t =
# {
#   {
#     -1,
#     (gchar *) "arg_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_t_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_t_IN_ARG_arg_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_t =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodT",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_t_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-t",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_t (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_UINT64 (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_t: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-t signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-t:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_t: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_t() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-t",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_t),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_t,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UINT64);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_t:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_t: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_t_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_t_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_t (
#     OrgProjectUsefulInterface *proxy,
#     guint64 arg_arg_t,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodT",
#     g_variant_new ("(t)",
#                    arg_arg_t),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_t_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_t().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_t().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_t_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_t_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_t: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_t() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_t_sync (
#     OrgProjectUsefulInterface *proxy,
#     guint64 arg_arg_t,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodT",
#     g_variant_new ("(t)",
#                    arg_arg_t),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_t:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_t (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmp515fd1o0.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodD">
#                     <arg name="arg_d" type="d"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmp515fd1o0.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_DOUBLE (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectDoubleFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         gdouble arg_arg_d,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectDoubleFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectDoubleFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_double (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_d_IN_ARG_arg_d =
# {
#   {
#     -1,
#     (gchar *) "arg_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_d_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_d_IN_ARG_arg_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_d =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodD",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_d_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-d",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_d (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_DOUBLE (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_d: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-d signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-d:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_d: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_d() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-d",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_d),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_d,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_DOUBLE);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_d:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_d: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_d_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_d_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_d (
#     OrgProjectUsefulInterface *proxy,
#     gdouble arg_arg_d,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodD",
#     g_variant_new ("(d)",
#                    arg_arg_d),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_d_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_d().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_d().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_d_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_d_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_d: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_d() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_d_sync (
#     OrgProjectUsefulInterface *proxy,
#     gdouble arg_arg_d,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodD",
#     g_variant_new ("(d)",
#                    arg_arg_d),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_d:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_d (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmp31n2jceh.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodS">
#                     <arg name="arg_s" type="s"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmp31n2jceh.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *arg_arg_s,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectStringFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_string (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_s_IN_ARG_arg_s =
# {
#   {
#     -1,
#     (gchar *) "arg_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_s_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_s_IN_ARG_arg_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_s =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodS",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_s_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-s",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_s (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_s: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-s signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-s:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_s: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_s() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-s",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_s),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_s,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_s:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_s: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_s_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_s_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_s (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_s,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodS",
#     g_variant_new ("(s)",
#                    arg_arg_s),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_s_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_s().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_s().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_s_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_s_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_s: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_s() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_s_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_s,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodS",
#     g_variant_new ("(s)",
#                    arg_arg_s),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_s:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_s (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpkmytkxde.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodO">
#                     <arg name="arg_o" type="o"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpkmytkxde.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *arg_arg_o,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectStringFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_string (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_o_IN_ARG_arg_o =
# {
#   {
#     -1,
#     (gchar *) "arg_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_o_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_o_IN_ARG_arg_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_o =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodO",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_o_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-o",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_o (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_o: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-o signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-o:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_o: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_o() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-o",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_o),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_o,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_o:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_o: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_o_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_o_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_o (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_o,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodO",
#     g_variant_new ("(o)",
#                    arg_arg_o),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_o_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_o().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_o().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_o_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_o_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_o: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_o() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_o_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_o,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodO",
#     g_variant_new ("(o)",
#                    arg_arg_o),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_o:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_o (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmp4kaxxv0y.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodG">
#                     <arg name="arg_g" type="g"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmp4kaxxv0y.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *arg_arg_g,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectStringFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_string (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_g_IN_ARG_arg_g =
# {
#   {
#     -1,
#     (gchar *) "arg_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_g_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_g_IN_ARG_arg_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_g =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodG",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_g_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-g",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_g (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_g: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-g signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-g:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_g: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_g() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-g",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_g),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_g,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_g:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_g: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_g_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_g_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_g (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_g,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodG",
#     g_variant_new ("(g)",
#                    arg_arg_g),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_g_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_g().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_g().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_g_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_g_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_g: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_g() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_g_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_g,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodG",
#     g_variant_new ("(g)",
#                    arg_arg_g),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_g:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_g (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpi3_0k26n.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodH">
#                     <arg name="arg_h" type="h"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpi3_0k26n.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_VARIANT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectVariantFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         GVariant *arg_arg_h,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectVariantFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectVariantFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_variant (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_h_IN_ARG_arg_h =
# {
#   {
#     -1,
#     (gchar *) "arg_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_h_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_h_IN_ARG_arg_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_h =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodH",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_h_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-h",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_h (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_h: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-h signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-h:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_h: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_h() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-h",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_h),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_h,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_h:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_h: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_h_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_h_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_h (
#     OrgProjectUsefulInterface *proxy,
#     GVariant *arg_arg_h,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodH",
#     g_variant_new ("(@h)",
#                    arg_arg_h),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_h_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_h().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_h().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_h_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_h_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_h: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_h() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_h_sync (
#     OrgProjectUsefulInterface *proxy,
#     GVariant *arg_arg_h,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodH",
#     g_variant_new ("(@h)",
#                    arg_arg_h),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_h:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_h (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmp5v70nd8w.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAy">
#                     <arg name="arg_ay" type="ay"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmp5v70nd8w.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *arg_arg_ay,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectStringFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectStringFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_string (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_ay_IN_ARG_arg_ay =
# {
#   {
#     -1,
#     (gchar *) "arg_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_ay_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ay_IN_ARG_arg_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_ay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAy",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_ay_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-ay",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_ay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_ay: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-ay signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-ay:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_ay: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_ay() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-ay",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_ay),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_ay,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ay:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_ay: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_ay_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ay_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_ay (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_ay,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAy",
#     g_variant_new ("(^ay)",
#                    arg_arg_ay),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ay_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_ay().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_ay().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ay_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ay_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_ay: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ay() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ay_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *arg_arg_ay,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAy",
#     g_variant_new ("(^ay)",
#                    arg_arg_ay),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_ay:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_ay (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpqmsqb6x_.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAs">
#                     <arg name="arg_as" type="as"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpqmsqb6x_.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOXED (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectBoxedFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *const *arg_arg_as,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectBoxedFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectBoxedFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_boxed (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_as_IN_ARG_arg_as =
# {
#   {
#     -1,
#     (gchar *) "arg_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_as_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_as_IN_ARG_arg_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_as =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAs",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_as_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-as",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_as (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_as: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-as signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-as:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_as: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_as() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-as",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_as),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_as,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRV);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_as:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_as: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_as_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_as_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_as (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *const *arg_arg_as,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAs",
#     g_variant_new ("(^as)",
#                    arg_arg_as),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_as_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_as().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_as().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_as_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_as_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_as: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_as() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_as_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *const *arg_arg_as,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAs",
#     g_variant_new ("(^as)",
#                    arg_arg_as),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_as:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_as (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpf16ohcxq.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAo">
#                     <arg name="arg_ao" type="ao"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpf16ohcxq.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOXED (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectBoxedFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *const *arg_arg_ao,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectBoxedFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectBoxedFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_boxed (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_ao_IN_ARG_arg_ao =
# {
#   {
#     -1,
#     (gchar *) "arg_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_ao_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ao_IN_ARG_arg_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_ao =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAo",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_ao_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-ao",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_ao (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_ao: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-ao signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-ao:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_ao: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_ao() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-ao",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_ao),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_ao,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRV);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ao:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_ao: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_ao_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ao_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_ao (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *const *arg_arg_ao,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAo",
#     g_variant_new ("(^ao)",
#                    arg_arg_ao),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ao_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_ao().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_ao().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ao_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ao_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_ao: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ao() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ao_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *const *arg_arg_ao,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAo",
#     g_variant_new ("(^ao)",
#                    arg_arg_ao),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_ao:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_ao (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpr46p3eza.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAay">
#                     <arg name="arg_aay" type="aay"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpr46p3eza.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOXED (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectBoxedFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         const gchar *const *arg_arg_aay,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectBoxedFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectBoxedFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_boxed (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_aay_IN_ARG_arg_aay =
# {
#   {
#     -1,
#     (gchar *) "arg_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_aay_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_aay_IN_ARG_arg_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_aay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAay",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_aay_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-aay",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_aay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_aay: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-aay signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-aay:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_aay: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_aay() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-aay",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_aay),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_aay,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRV);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_aay:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_aay: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_aay_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_aay_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_aay (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *const *arg_arg_aay,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAay",
#     g_variant_new ("(^aay)",
#                    arg_arg_aay),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_aay_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_aay().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_aay().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_aay_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_aay_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_aay: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_aay() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_aay_sync (
#     OrgProjectUsefulInterface *proxy,
#     const gchar *const *arg_arg_aay,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAay",
#     g_variant_new ("(^aay)",
#                    arg_arg_aay),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_aay:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_aay (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpur2usapg/tmpvlvk6jko.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAsv">
#                     <arg name="arg_asv" type="a{sv}"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpur2usapg/tmpvlvk6jko.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_VARIANT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectVariantFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         GVariant *arg_arg_asv,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectVariantFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 3);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectVariantFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_variant (param_values + 2),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_asv_IN_ARG_arg_asv =
# {
#   {
#     -1,
#     (gchar *) "arg_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_asv_IN_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_asv_IN_ARG_arg_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_asv =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAsv",
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_asv_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-single-arg-method-asv",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_asv (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_asv: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-asv signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-asv:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_arg_asv: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_asv() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-asv",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_asv),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_asv,
#     G_TYPE_BOOLEAN,
#     2,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_asv:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_asv_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_asv_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_asv (
#     OrgProjectUsefulInterface *proxy,
#     GVariant *arg_arg_asv,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAsv",
#     g_variant_new ("(@a{sv})",
#                    arg_arg_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_asv_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_asv().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_asv().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_asv_finish (
#     OrgProjectUsefulInterface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_asv_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @arg_arg_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_asv() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_asv_sync (
#     OrgProjectUsefulInterface *proxy,
#     GVariant *arg_arg_asv,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAsv",
#     g_variant_new ("(@a{sv})",
#                    arg_arg_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_asv:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_asv (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
ok 11 __main__.TestCodegen.test_generate_methods_marshaller_single_typed_out_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpg0yzhgvr
# /tmp/tmpg0yzhgvr/tmpyoa9r1vs.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodB">
#                     <arg name="arg_b" type="b" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpyoa9r1vs.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_b_OUT_ARG_arg_b =
# {
#   {
#     -1,
#     (gchar *) "arg_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_b_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_b_OUT_ARG_arg_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_b =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodB",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_b_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-b",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_b (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_b: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-b signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-b:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_b() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-b",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_b),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_b,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_b:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_b_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_b_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_b (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodB",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_b_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_b: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_b().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_b().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_b_finish (
#     OrgProjectUsefulInterface *proxy,
#     gboolean *out_arg_b,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(b)",
#                  out_arg_b);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_b_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_b: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_b() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_b_sync (
#     OrgProjectUsefulInterface *proxy,
#     gboolean *out_arg_b,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodB",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(b)",
#                  out_arg_b);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_b:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_b: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodB">SingleArgMethodB()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_b (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     gboolean arg_b)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(b)",
#                    arg_b));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpfeholxv6.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodY">
#                     <arg name="arg_y" type="y" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpfeholxv6.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_y_OUT_ARG_arg_y =
# {
#   {
#     -1,
#     (gchar *) "arg_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_y_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_y_OUT_ARG_arg_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_y =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodY",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_y_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-y",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_y (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_y: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-y signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-y:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_y() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-y",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_y),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_y,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_y:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_y_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_y_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_y (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodY",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_y_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_y: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_y().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_y().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_y_finish (
#     OrgProjectUsefulInterface *proxy,
#     guchar *out_arg_y,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(y)",
#                  out_arg_y);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_y_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_y: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_y() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_y_sync (
#     OrgProjectUsefulInterface *proxy,
#     guchar *out_arg_y,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodY",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(y)",
#                  out_arg_y);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_y:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_y: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodY">SingleArgMethodY()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_y (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     guchar arg_y)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(y)",
#                    arg_y));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpzlzws67n.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodN">
#                     <arg name="arg_n" type="n" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpzlzws67n.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_n_OUT_ARG_arg_n =
# {
#   {
#     -1,
#     (gchar *) "arg_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_n_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_n_OUT_ARG_arg_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_n =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodN",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_n_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-n",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_n (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_n: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-n signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-n:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_n() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-n",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_n),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_n,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_n:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_n_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_n_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_n (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodN",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_n_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_n: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_n().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_n().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_n_finish (
#     OrgProjectUsefulInterface *proxy,
#     gint16 *out_arg_n,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(n)",
#                  out_arg_n);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_n_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_n: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_n() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_n_sync (
#     OrgProjectUsefulInterface *proxy,
#     gint16 *out_arg_n,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodN",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(n)",
#                  out_arg_n);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_n:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_n: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodN">SingleArgMethodN()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_n (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     gint16 arg_n)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(n)",
#                    arg_n));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmp94fu73d1.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodQ">
#                     <arg name="arg_q" type="q" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmp94fu73d1.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_q_OUT_ARG_arg_q =
# {
#   {
#     -1,
#     (gchar *) "arg_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_q_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_q_OUT_ARG_arg_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_q =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodQ",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_q_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-q",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_q (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_q: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-q signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-q:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_q() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-q",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_q),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_q,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_q:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_q_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_q_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_q (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodQ",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_q_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_q: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_q().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_q().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_q_finish (
#     OrgProjectUsefulInterface *proxy,
#     guint16 *out_arg_q,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(q)",
#                  out_arg_q);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_q_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_q: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_q() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_q_sync (
#     OrgProjectUsefulInterface *proxy,
#     guint16 *out_arg_q,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodQ",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(q)",
#                  out_arg_q);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_q:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_q: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodQ">SingleArgMethodQ()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_q (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     guint16 arg_q)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(q)",
#                    arg_q));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpjhwgez06.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodI">
#                     <arg name="arg_i" type="i" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpjhwgez06.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_i_OUT_ARG_arg_i =
# {
#   {
#     -1,
#     (gchar *) "arg_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_i_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_i_OUT_ARG_arg_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_i =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodI",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_i_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-i",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_i (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_i: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-i signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-i:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_i() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-i",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_i),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_i,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_i:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_i_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_i_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_i (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodI",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_i_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_i: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_i().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_i().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_i_finish (
#     OrgProjectUsefulInterface *proxy,
#     gint *out_arg_i,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(i)",
#                  out_arg_i);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_i_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_i: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_i() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_i_sync (
#     OrgProjectUsefulInterface *proxy,
#     gint *out_arg_i,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodI",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(i)",
#                  out_arg_i);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_i:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_i: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodI">SingleArgMethodI()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_i (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     gint arg_i)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(i)",
#                    arg_i));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmp3o6lzatq.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodU">
#                     <arg name="arg_u" type="u" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmp3o6lzatq.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_u_OUT_ARG_arg_u =
# {
#   {
#     -1,
#     (gchar *) "arg_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_u_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_u_OUT_ARG_arg_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_u =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodU",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_u_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-u",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_u (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_u: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-u signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-u:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_u() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-u",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_u),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_u,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_u:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_u_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_u_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_u (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodU",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_u_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_u: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_u().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_u().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_u_finish (
#     OrgProjectUsefulInterface *proxy,
#     guint *out_arg_u,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(u)",
#                  out_arg_u);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_u_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_u: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_u() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_u_sync (
#     OrgProjectUsefulInterface *proxy,
#     guint *out_arg_u,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodU",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(u)",
#                  out_arg_u);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_u:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_u: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodU">SingleArgMethodU()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_u (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     guint arg_u)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(u)",
#                    arg_u));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpm4vtukfr.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodX">
#                     <arg name="arg_x" type="x" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpm4vtukfr.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_x_OUT_ARG_arg_x =
# {
#   {
#     -1,
#     (gchar *) "arg_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_x_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_x_OUT_ARG_arg_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_x =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodX",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_x_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-x",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_x (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_x: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-x signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-x:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_x() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-x",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_x),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_x,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_x:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_x_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_x_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_x (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodX",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_x_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_x: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_x().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_x().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_x_finish (
#     OrgProjectUsefulInterface *proxy,
#     gint64 *out_arg_x,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(x)",
#                  out_arg_x);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_x_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_x: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_x() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_x_sync (
#     OrgProjectUsefulInterface *proxy,
#     gint64 *out_arg_x,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodX",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(x)",
#                  out_arg_x);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_x:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_x: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodX">SingleArgMethodX()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_x (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     gint64 arg_x)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(x)",
#                    arg_x));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpqy4ts2ci.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodT">
#                     <arg name="arg_t" type="t" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpqy4ts2ci.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_t_OUT_ARG_arg_t =
# {
#   {
#     -1,
#     (gchar *) "arg_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_t_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_t_OUT_ARG_arg_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_t =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodT",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_t_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-t",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_t (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_t: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-t signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-t:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_t() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-t",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_t),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_t,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_t:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_t_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_t_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_t (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodT",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_t_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_t: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_t().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_t().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_t_finish (
#     OrgProjectUsefulInterface *proxy,
#     guint64 *out_arg_t,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(t)",
#                  out_arg_t);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_t_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_t: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_t() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_t_sync (
#     OrgProjectUsefulInterface *proxy,
#     guint64 *out_arg_t,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodT",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(t)",
#                  out_arg_t);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_t:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_t: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodT">SingleArgMethodT()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_t (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     guint64 arg_t)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(t)",
#                    arg_t));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpork5il7w.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodD">
#                     <arg name="arg_d" type="d" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpork5il7w.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_d_OUT_ARG_arg_d =
# {
#   {
#     -1,
#     (gchar *) "arg_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_d_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_d_OUT_ARG_arg_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_d =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodD",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_d_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-d",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_d (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_d: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-d signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-d:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_d() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-d",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_d),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_d,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_d:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_d_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_d_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_d (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodD",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_d_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_d: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_d().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_d().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_d_finish (
#     OrgProjectUsefulInterface *proxy,
#     gdouble *out_arg_d,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(d)",
#                  out_arg_d);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_d_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_d: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_d() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_d_sync (
#     OrgProjectUsefulInterface *proxy,
#     gdouble *out_arg_d,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodD",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(d)",
#                  out_arg_d);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_d:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_d: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodD">SingleArgMethodD()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_d (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     gdouble arg_d)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(d)",
#                    arg_d));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpbd6rf3gi.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodS">
#                     <arg name="arg_s" type="s" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpbd6rf3gi.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_s_OUT_ARG_arg_s =
# {
#   {
#     -1,
#     (gchar *) "arg_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_s_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_s_OUT_ARG_arg_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_s =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodS",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_s_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-s",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_s (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_s: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-s signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-s:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_s() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-s",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_s),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_s,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_s:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_s_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_s_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_s (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodS",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_s_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_s: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_s().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_s().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_s_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_s,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(s)",
#                  out_arg_s);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_s_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_s: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_s() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_s_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_s,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodS",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(s)",
#                  out_arg_s);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_s:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_s: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodS">SingleArgMethodS()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_s (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *arg_s)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(s)",
#                    arg_s));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmp75a1t51g.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodO">
#                     <arg name="arg_o" type="o" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmp75a1t51g.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_o_OUT_ARG_arg_o =
# {
#   {
#     -1,
#     (gchar *) "arg_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_o_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_o_OUT_ARG_arg_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_o =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodO",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_o_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-o",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_o (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_o: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-o signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-o:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_o() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-o",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_o),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_o,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_o:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_o_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_o_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_o (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodO",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_o_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_o: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_o().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_o().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_o_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_o,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(o)",
#                  out_arg_o);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_o_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_o: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_o() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_o_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_o,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodO",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(o)",
#                  out_arg_o);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_o:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_o: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodO">SingleArgMethodO()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_o (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *arg_o)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(o)",
#                    arg_o));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpjqxa1y3w.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodG">
#                     <arg name="arg_g" type="g" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpjqxa1y3w.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_g_OUT_ARG_arg_g =
# {
#   {
#     -1,
#     (gchar *) "arg_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_g_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_g_OUT_ARG_arg_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_g =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodG",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_g_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-g",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_g (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_g: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-g signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-g:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_g() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-g",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_g),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_g,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_g:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_g_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_g_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_g (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodG",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_g_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_g: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_g().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_g().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_g_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_g,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(g)",
#                  out_arg_g);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_g_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_g: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_g() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_g_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_g,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodG",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(g)",
#                  out_arg_g);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_g:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_g: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodG">SingleArgMethodG()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_g (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *arg_g)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(g)",
#                    arg_g));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpcnjkiqb2.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodH">
#                     <arg name="arg_h" type="h" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpcnjkiqb2.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_h_OUT_ARG_arg_h =
# {
#   {
#     -1,
#     (gchar *) "arg_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_h_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_h_OUT_ARG_arg_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_h =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodH",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_h_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-h",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_h (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_h: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-h signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-h:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_h() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-h",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_h),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_h,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_h:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_h_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_h_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_h (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodH",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_h_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_h: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_h().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_h().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_h_finish (
#     OrgProjectUsefulInterface *proxy,
#     GVariant **out_arg_h,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(@h)",
#                  out_arg_h);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_h_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_h: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_h() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_h_sync (
#     OrgProjectUsefulInterface *proxy,
#     GVariant **out_arg_h,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodH",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(@h)",
#                  out_arg_h);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_h:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_h: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodH">SingleArgMethodH()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_h (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     GVariant *arg_h)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(@h)",
#                    arg_h));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpstitjr_6.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAy">
#                     <arg name="arg_ay" type="ay" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpstitjr_6.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_ay_OUT_ARG_arg_ay =
# {
#   {
#     -1,
#     (gchar *) "arg_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_ay_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ay_OUT_ARG_arg_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_ay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAy",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_ay_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-ay",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_ay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_ay: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-ay signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-ay:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_ay() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-ay",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_ay),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_ay,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ay:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_ay_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ay_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_ay (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAy",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ay_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_ay: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_ay().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_ay().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ay_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_ay,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^ay)",
#                  out_arg_ay);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ay_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_ay: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ay() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ay_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar **out_arg_ay,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAy",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^ay)",
#                  out_arg_ay);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_ay:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_ay: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAy">SingleArgMethodAy()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_ay (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *arg_ay)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(^ay)",
#                    arg_ay));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmp77nov2fq.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAs">
#                     <arg name="arg_as" type="as" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmp77nov2fq.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_as_OUT_ARG_arg_as =
# {
#   {
#     -1,
#     (gchar *) "arg_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_as_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_as_OUT_ARG_arg_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_as =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAs",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_as_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-as",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_as (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_as: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-as signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-as:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_as() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-as",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_as),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_as,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_as:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_as_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_as_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_as (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAs",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_as_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_as: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_as().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_as().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_as_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar ***out_arg_as,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^as)",
#                  out_arg_as);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_as_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_as: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_as() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_as_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar ***out_arg_as,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAs",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^as)",
#                  out_arg_as);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_as:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_as: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAs">SingleArgMethodAs()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_as (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *const *arg_as)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(^as)",
#                    arg_as));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmp2m7zmjyi.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAo">
#                     <arg name="arg_ao" type="ao" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmp2m7zmjyi.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_ao_OUT_ARG_arg_ao =
# {
#   {
#     -1,
#     (gchar *) "arg_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_ao_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ao_OUT_ARG_arg_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_ao =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAo",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_ao_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-ao",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_ao (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_ao: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-ao signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-ao:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_ao() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-ao",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_ao),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_ao,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ao:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_ao_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ao_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_ao (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAo",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ao_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_ao: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_ao().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_ao().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ao_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar ***out_arg_ao,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^ao)",
#                  out_arg_ao);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_ao_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_ao: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_ao() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_ao_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar ***out_arg_ao,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAo",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^ao)",
#                  out_arg_ao);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_ao:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_ao: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAo">SingleArgMethodAo()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_ao (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *const *arg_ao)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(^ao)",
#                    arg_ao));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmpno1_yy3h.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAay">
#                     <arg name="arg_aay" type="aay" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmpno1_yy3h.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_aay_OUT_ARG_arg_aay =
# {
#   {
#     -1,
#     (gchar *) "arg_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_aay_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_aay_OUT_ARG_arg_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_aay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAay",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_aay_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-aay",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_aay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_aay: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-aay signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-aay:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_aay() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-aay",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_aay),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_aay,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_aay:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_aay_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_aay_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_aay (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAay",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_aay_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_aay: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_aay().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_aay().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_aay_finish (
#     OrgProjectUsefulInterface *proxy,
#     gchar ***out_arg_aay,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^aay)",
#                  out_arg_aay);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_aay_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_aay: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_aay() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_aay_sync (
#     OrgProjectUsefulInterface *proxy,
#     gchar ***out_arg_aay,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAay",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(^aay)",
#                  out_arg_aay);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_aay:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_aay: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAay">SingleArgMethodAay()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_aay (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     const gchar *const *arg_aay)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(^aay)",
#                    arg_aay));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpg0yzhgvr/tmprdbmyid0.xml: 
#             <node>
#             <interface name="org.project.UsefulInterface">
#                 <method name="SingleArgMethodAsv">
#                     <arg name="arg_asv" type="a{sv}" direction="out"/>
#                 </method>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg0yzhgvr/tmprdbmyid0.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_useful_interface_method_info_single_arg_method_asv_OUT_ARG_arg_asv =
# {
#   {
#     -1,
#     (gchar *) "arg_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_useful_interface_method_info_single_arg_method_asv_OUT_ARG_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_asv_OUT_ARG_arg_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_single_arg_method_asv =
# {
#   {
#     -1,
#     (gchar *) "SingleArgMethodAsv",
#     NULL,
#     (GDBusArgInfo **) &_org_project_useful_interface_method_info_single_arg_method_asv_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-single-arg-method-asv",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] =
# {
#   &_org_project_useful_interface_method_info_single_arg_method_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     (GDBusMethodInfo **) &_org_project_useful_interface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_method_marshal_single_arg_method_asv (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_single_arg_method_asv: Handler for the #OrgProjectUsefulInterface::handle-single-arg-method-asv signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectUsefulInterface::handle-single-arg-method-asv:
#    * @object: A #OrgProjectUsefulInterface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</link> D-Bus method.
#    *
#    * 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 org_project_useful_interface_complete_single_arg_method_asv() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-single-arg-method-asv",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_single_arg_method_asv),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_useful_interface_method_marshal_single_arg_method_asv,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_asv:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_useful_interface_call_single_arg_method_asv_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_call_single_arg_method_asv_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_useful_interface_call_single_arg_method_asv (
#     OrgProjectUsefulInterface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAsv",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_asv_finish:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_asv: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_single_arg_method_asv().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_useful_interface_call_single_arg_method_asv().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_asv_finish (
#     OrgProjectUsefulInterface *proxy,
#     GVariant **out_arg_asv,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(@a{sv})",
#                  out_arg_asv);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_call_single_arg_method_asv_sync:
#  * @proxy: A #OrgProjectUsefulInterfaceProxy.
#  * @out_arg_asv: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_call_single_arg_method_asv() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_useful_interface_call_single_arg_method_asv_sync (
#     OrgProjectUsefulInterface *proxy,
#     GVariant **out_arg_asv,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SingleArgMethodAsv",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(@a{sv})",
#                  out_arg_asv);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_useful_interface_complete_single_arg_method_asv:
#  * @object: A #OrgProjectUsefulInterface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @arg_asv: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-UsefulInterface.SingleArgMethodAsv">SingleArgMethodAsv()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_useful_interface_complete_single_arg_method_asv (
#     OrgProjectUsefulInterface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     GVariant *arg_asv)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(@a{sv})",
#                    arg_asv));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# Error:
ok 12 __main__.TestCodegen.test_generate_methods_marshallers_multiple_in_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp4jwbdi5q
# /tmp/tmp4jwbdi5q/tmpcy2z39hy.xml: 
#             <node>
#               <interface name="org.project.CallableIface">
#                 <method name="MethodWithManyArgs">
#                     <arg name='an_b' type='b'/>
# <arg name='an_y' type='y'/>
# <arg name='an_n' type='n'/>
# <arg name='an_q' type='q'/>
# <arg name='an_i' type='i'/>
# <arg name='an_u' type='u'/>
# <arg name='an_x' type='x'/>
# <arg name='an_t' type='t'/>
# <arg name='an_d' type='d'/>
# <arg name='an_s' type='s'/>
# <arg name='an_o' type='o'/>
# <arg name='an_g' type='g'/>
# <arg name='an_h' type='h'/>
# <arg name='an_ay' type='ay'/>
# <arg name='an_as' type='as'/>
# <arg name='an_ao' type='ao'/>
# <arg name='an_aay' type='aay'/>
# <arg name='an_asv' type='a{sv}'/>
# 
#                 </method>
#                 <method name="SameMethodWithManyArgs">
#                     <arg name='an_b' type='b'/>
# <arg name='an_y' type='y'/>
# <arg name='an_n' type='n'/>
# <arg name='an_q' type='q'/>
# <arg name='an_i' type='i'/>
# <arg name='an_u' type='u'/>
# <arg name='an_x' type='x'/>
# <arg name='an_t' type='t'/>
# <arg name='an_d' type='d'/>
# <arg name='an_s' type='s'/>
# <arg name='an_o' type='o'/>
# <arg name='an_g' type='g'/>
# <arg name='an_h' type='h'/>
# <arg name='an_ay' type='ay'/>
# <arg name='an_as' type='as'/>
# <arg name='an_ao' type='ao'/>
# <arg name='an_aay' type='aay'/>
# <arg name='an_asv' type='a{sv}'/>
# 
#                 </method>
#               </interface>
#               <interface name="org.project.OtherCallableIface">
#                 <method name="MethodWithManyArgs">
#                     <arg name='an_b' type='b'/>
# <arg name='an_y' type='y'/>
# <arg name='an_n' type='n'/>
# <arg name='an_q' type='q'/>
# <arg name='an_i' type='i'/>
# <arg name='an_u' type='u'/>
# <arg name='an_x' type='x'/>
# <arg name='an_t' type='t'/>
# <arg name='an_d' type='d'/>
# <arg name='an_s' type='s'/>
# <arg name='an_o' type='o'/>
# <arg name='an_g' type='g'/>
# <arg name='an_h' type='h'/>
# <arg name='an_ay' type='ay'/>
# <arg name='an_as' type='as'/>
# <arg name='an_ao' type='ao'/>
# <arg name='an_aay' type='aay'/>
# <arg name='an_asv' type='a{sv}'/>
# 
#                 </method>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp4jwbdi5q/tmpcy2z39hy.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectBooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         gboolean arg_an_b,
#         guchar arg_an_y,
#         gint16 arg_an_n,
#         guint16 arg_an_q,
#         gint arg_an_i,
#         guint arg_an_u,
#         gint64 arg_an_x,
#         guint64 arg_an_t,
#         gdouble arg_an_d,
#         const gchar *arg_an_s,
#         const gchar *arg_an_o,
#         const gchar *arg_an_g,
#         GVariant *arg_an_h,
#         const gchar *arg_an_ay,
#         const gchar *const *arg_an_as,
#         const gchar *const *arg_an_ao,
#         const gchar *const *arg_an_aay,
#         GVariant *arg_an_asv,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectBooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 20);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectBooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_boolean (param_values + 2),
#               g_marshal_value_peek_uchar (param_values + 3),
#               g_marshal_value_peek_int (param_values + 4),
#               g_marshal_value_peek_uint (param_values + 5),
#               g_marshal_value_peek_int (param_values + 6),
#               g_marshal_value_peek_uint (param_values + 7),
#               g_marshal_value_peek_int64 (param_values + 8),
#               g_marshal_value_peek_uint64 (param_values + 9),
#               g_marshal_value_peek_double (param_values + 10),
#               g_marshal_value_peek_string (param_values + 11),
#               g_marshal_value_peek_string (param_values + 12),
#               g_marshal_value_peek_string (param_values + 13),
#               g_marshal_value_peek_variant (param_values + 14),
#               g_marshal_value_peek_string (param_values + 15),
#               g_marshal_value_peek_boxed (param_values + 16),
#               g_marshal_value_peek_boxed (param_values + 17),
#               g_marshal_value_peek_boxed (param_values + 18),
#               g_marshal_value_peek_variant (param_values + 19),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.CallableIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectCallableIface
#  * @title: OrgProjectCallableIface
#  * @short_description: Generated C code for the org.project.CallableIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.CallableIface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_callable_iface_method_info_method_with_many_args_IN_ARG_pointers[] =
# {
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_b.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_y.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_n.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_q.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_i.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_u.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_x.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_t.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_d.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_s.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_o.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_g.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_h.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_ay.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_as.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_ao.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_aay.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_callable_iface_method_info_method_with_many_args =
# {
#   {
#     -1,
#     (gchar *) "MethodWithManyArgs",
#     (GDBusArgInfo **) &_org_project_callable_iface_method_info_method_with_many_args_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-method-with-many-args",
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_pointers[] =
# {
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_b.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_y.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_n.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_q.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_i.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_u.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_x.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_t.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_d.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_s.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_o.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_g.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_h.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_ay.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_as.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_ao.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_aay.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_callable_iface_method_info_same_method_with_many_args =
# {
#   {
#     -1,
#     (gchar *) "SameMethodWithManyArgs",
#     (GDBusArgInfo **) &_org_project_callable_iface_method_info_same_method_with_many_args_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-same-method-with-many-args",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_callable_iface_method_info_pointers[] =
# {
#   &_org_project_callable_iface_method_info_method_with_many_args.parent_struct,
#   &_org_project_callable_iface_method_info_same_method_with_many_args.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_callable_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.CallableIface",
#     (GDBusMethodInfo **) &_org_project_callable_iface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-callable-iface",
# };
# 
# 
# /**
#  * org_project_callable_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_callable_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_callable_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectCallableIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_callable_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_callable_iface_method_marshal_method_with_many_args (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_callable_iface_method_marshal_same_method_with_many_args (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectCallableIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  */
# 
# /**
#  * OrgProjectCallableIfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_method_with_many_args: Handler for the #OrgProjectCallableIface::handle-method-with-many-args signal.
#  * @handle_same_method_with_many_args: Handler for the #OrgProjectCallableIface::handle-same-method-with-many-args signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  */
# 
# typedef OrgProjectCallableIfaceIface OrgProjectCallableIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectCallableIface, org_project_callable_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_callable_iface_default_init (OrgProjectCallableIfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectCallableIface::handle-method-with-many-args:
#    * @object: A #OrgProjectCallableIface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_an_b: Argument passed by remote caller.
#    * @arg_an_y: Argument passed by remote caller.
#    * @arg_an_n: Argument passed by remote caller.
#    * @arg_an_q: Argument passed by remote caller.
#    * @arg_an_i: Argument passed by remote caller.
#    * @arg_an_u: Argument passed by remote caller.
#    * @arg_an_x: Argument passed by remote caller.
#    * @arg_an_t: Argument passed by remote caller.
#    * @arg_an_d: Argument passed by remote caller.
#    * @arg_an_s: Argument passed by remote caller.
#    * @arg_an_o: Argument passed by remote caller.
#    * @arg_an_g: Argument passed by remote caller.
#    * @arg_an_h: Argument passed by remote caller.
#    * @arg_an_ay: Argument passed by remote caller.
#    * @arg_an_as: Argument passed by remote caller.
#    * @arg_an_ao: Argument passed by remote caller.
#    * @arg_an_aay: Argument passed by remote caller.
#    * @arg_an_asv: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method.
#    *
#    * 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 org_project_callable_iface_complete_method_with_many_args() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-method-with-many-args",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectCallableIfaceIface, handle_method_with_many_args),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_callable_iface_method_marshal_method_with_many_args,
#     G_TYPE_BOOLEAN,
#     19,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN, G_TYPE_UCHAR, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT64, G_TYPE_UINT64, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_VARIANT);
# 
#   /**
#    * OrgProjectCallableIface::handle-same-method-with-many-args:
#    * @object: A #OrgProjectCallableIface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_an_b: Argument passed by remote caller.
#    * @arg_an_y: Argument passed by remote caller.
#    * @arg_an_n: Argument passed by remote caller.
#    * @arg_an_q: Argument passed by remote caller.
#    * @arg_an_i: Argument passed by remote caller.
#    * @arg_an_u: Argument passed by remote caller.
#    * @arg_an_x: Argument passed by remote caller.
#    * @arg_an_t: Argument passed by remote caller.
#    * @arg_an_d: Argument passed by remote caller.
#    * @arg_an_s: Argument passed by remote caller.
#    * @arg_an_o: Argument passed by remote caller.
#    * @arg_an_g: Argument passed by remote caller.
#    * @arg_an_h: Argument passed by remote caller.
#    * @arg_an_ay: Argument passed by remote caller.
#    * @arg_an_as: Argument passed by remote caller.
#    * @arg_an_ao: Argument passed by remote caller.
#    * @arg_an_aay: Argument passed by remote caller.
#    * @arg_an_asv: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-CallableIface.SameMethodWithManyArgs">SameMethodWithManyArgs()</link> D-Bus method.
#    *
#    * 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 org_project_callable_iface_complete_same_method_with_many_args() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-same-method-with-many-args",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectCallableIfaceIface, handle_same_method_with_many_args),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_callable_iface_method_marshal_same_method_with_many_args,
#     G_TYPE_BOOLEAN,
#     19,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN, G_TYPE_UCHAR, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT64, G_TYPE_UINT64, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_callable_iface_call_method_with_many_args:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @arg_an_b: Argument to pass with the method invocation.
#  * @arg_an_y: Argument to pass with the method invocation.
#  * @arg_an_n: Argument to pass with the method invocation.
#  * @arg_an_q: Argument to pass with the method invocation.
#  * @arg_an_i: Argument to pass with the method invocation.
#  * @arg_an_u: Argument to pass with the method invocation.
#  * @arg_an_x: Argument to pass with the method invocation.
#  * @arg_an_t: Argument to pass with the method invocation.
#  * @arg_an_d: Argument to pass with the method invocation.
#  * @arg_an_s: Argument to pass with the method invocation.
#  * @arg_an_o: Argument to pass with the method invocation.
#  * @arg_an_g: Argument to pass with the method invocation.
#  * @arg_an_h: Argument to pass with the method invocation.
#  * @arg_an_ay: Argument to pass with the method invocation.
#  * @arg_an_as: Argument to pass with the method invocation.
#  * @arg_an_ao: Argument to pass with the method invocation.
#  * @arg_an_aay: Argument to pass with the method invocation.
#  * @arg_an_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_callable_iface_call_method_with_many_args_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_call_method_with_many_args_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_callable_iface_call_method_with_many_args (
#     OrgProjectCallableIface *proxy,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "MethodWithManyArgs",
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_callable_iface_call_method_with_many_args_finish:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_call_method_with_many_args().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_callable_iface_call_method_with_many_args().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_method_with_many_args_finish (
#     OrgProjectCallableIface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_call_method_with_many_args_sync:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @arg_an_b: Argument to pass with the method invocation.
#  * @arg_an_y: Argument to pass with the method invocation.
#  * @arg_an_n: Argument to pass with the method invocation.
#  * @arg_an_q: Argument to pass with the method invocation.
#  * @arg_an_i: Argument to pass with the method invocation.
#  * @arg_an_u: Argument to pass with the method invocation.
#  * @arg_an_x: Argument to pass with the method invocation.
#  * @arg_an_t: Argument to pass with the method invocation.
#  * @arg_an_d: Argument to pass with the method invocation.
#  * @arg_an_s: Argument to pass with the method invocation.
#  * @arg_an_o: Argument to pass with the method invocation.
#  * @arg_an_g: Argument to pass with the method invocation.
#  * @arg_an_h: Argument to pass with the method invocation.
#  * @arg_an_ay: Argument to pass with the method invocation.
#  * @arg_an_as: Argument to pass with the method invocation.
#  * @arg_an_ao: Argument to pass with the method invocation.
#  * @arg_an_aay: Argument to pass with the method invocation.
#  * @arg_an_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_call_method_with_many_args() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_method_with_many_args_sync (
#     OrgProjectCallableIface *proxy,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "MethodWithManyArgs",
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_call_same_method_with_many_args:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @arg_an_b: Argument to pass with the method invocation.
#  * @arg_an_y: Argument to pass with the method invocation.
#  * @arg_an_n: Argument to pass with the method invocation.
#  * @arg_an_q: Argument to pass with the method invocation.
#  * @arg_an_i: Argument to pass with the method invocation.
#  * @arg_an_u: Argument to pass with the method invocation.
#  * @arg_an_x: Argument to pass with the method invocation.
#  * @arg_an_t: Argument to pass with the method invocation.
#  * @arg_an_d: Argument to pass with the method invocation.
#  * @arg_an_s: Argument to pass with the method invocation.
#  * @arg_an_o: Argument to pass with the method invocation.
#  * @arg_an_g: Argument to pass with the method invocation.
#  * @arg_an_h: Argument to pass with the method invocation.
#  * @arg_an_ay: Argument to pass with the method invocation.
#  * @arg_an_as: Argument to pass with the method invocation.
#  * @arg_an_ao: Argument to pass with the method invocation.
#  * @arg_an_aay: Argument to pass with the method invocation.
#  * @arg_an_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.SameMethodWithManyArgs">SameMethodWithManyArgs()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_callable_iface_call_same_method_with_many_args_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_call_same_method_with_many_args_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_callable_iface_call_same_method_with_many_args (
#     OrgProjectCallableIface *proxy,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "SameMethodWithManyArgs",
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_callable_iface_call_same_method_with_many_args_finish:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_call_same_method_with_many_args().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_callable_iface_call_same_method_with_many_args().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_same_method_with_many_args_finish (
#     OrgProjectCallableIface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_call_same_method_with_many_args_sync:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @arg_an_b: Argument to pass with the method invocation.
#  * @arg_an_y: Argument to pass with the method invocation.
#  * @arg_an_n: Argument to pass with the method invocation.
#  * @arg_an_q: Argument to pass with the method invocation.
#  * @arg_an_i: Argument to pass with the method invocation.
#  * @arg_an_u: Argument to pass with the method invocation.
#  * @arg_an_x: Argument to pass with the method invocation.
#  * @arg_an_t: Argument to pass with the method invocation.
#  * @arg_an_d: Argument to pass with the method invocation.
#  * @arg_an_s: Argument to pass with the method invocation.
#  * @arg_an_o: Argument to pass with the method invocation.
#  * @arg_an_g: Argument to pass with the method invocation.
#  * @arg_an_h: Argument to pass with the method invocation.
#  * @arg_an_ay: Argument to pass with the method invocation.
#  * @arg_an_as: Argument to pass with the method invocation.
#  * @arg_an_ao: Argument to pass with the method invocation.
#  * @arg_an_aay: Argument to pass with the method invocation.
#  * @arg_an_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.SameMethodWithManyArgs">SameMethodWithManyArgs()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_call_same_method_with_many_args() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_same_method_with_many_args_sync (
#     OrgProjectCallableIface *proxy,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "SameMethodWithManyArgs",
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_complete_method_with_many_args:
#  * @object: A #OrgProjectCallableIface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_callable_iface_complete_method_with_many_args (
#     OrgProjectCallableIface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /**
#  * org_project_callable_iface_complete_same_method_with_many_args:
#  * @object: A #OrgProjectCallableIface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-CallableIface.SameMethodWithManyArgs">SameMethodWithManyArgs()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_callable_iface_complete_same_method_with_many_args (
#     OrgProjectCallableIface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectCallableIfaceProxy:
#  *
#  * The #OrgProjectCallableIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectCallableIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectCallableIfaceProxy.
#  */
# 
# struct _OrgProjectCallableIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_callable_iface_proxy_iface_init (OrgProjectCallableIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceProxy, org_project_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectCallableIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceProxy, org_project_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_callable_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectCallableIfaceProxy *proxy = ORG_PROJECT_CALLABLE_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_callable_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_callable_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_callable_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_callable_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_callable_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectCallableIfaceProxy *proxy = ORG_PROJECT_CALLABLE_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_callable_iface_proxy_init (OrgProjectCallableIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_callable_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, OrgProjectCallableIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_callable_iface_interface_info ());
# }
# 
# static void
# org_project_callable_iface_proxy_class_init (OrgProjectCallableIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_callable_iface_proxy_finalize;
#   gobject_class->get_property = org_project_callable_iface_proxy_get_property;
#   gobject_class->set_property = org_project_callable_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_callable_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_callable_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectCallableIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_callable_iface_proxy_iface_init (OrgProjectCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_callable_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_callable_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_callable_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_CALLABLE_IFACE_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.project.CallableIface", NULL);
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_callable_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.CallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_callable_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_callable_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_callable_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_CALLABLE_IFACE_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.project.CallableIface", NULL);
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_callable_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_callable_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.CallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectCallableIfaceSkeleton:
#  *
#  * The #OrgProjectCallableIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectCallableIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectCallableIfaceSkeleton.
#  */
# 
# struct _OrgProjectCallableIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_callable_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_callable_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_callable_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_callable_iface_skeleton_vtable =
# {
#   _org_project_callable_iface_skeleton_handle_method_call,
#   _org_project_callable_iface_skeleton_handle_get_property,
#   _org_project_callable_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_callable_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_callable_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_callable_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_callable_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_callable_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_callable_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_callable_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_callable_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_callable_iface_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.project.CallableIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_callable_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_callable_iface_skeleton_iface_init (OrgProjectCallableIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceSkeleton, org_project_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectCallableIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceSkeleton, org_project_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_callable_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_callable_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_callable_iface_skeleton_init (OrgProjectCallableIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_callable_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_CALLABLE_IFACE_SKELETON, OrgProjectCallableIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_callable_iface_skeleton_class_init (OrgProjectCallableIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_callable_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_callable_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_callable_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_callable_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_callable_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectCallableIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_callable_iface_skeleton_iface_init (OrgProjectCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_callable_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceSkeleton): The skeleton object.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_CALLABLE_IFACE (g_object_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_SKELETON, NULL));
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.OtherCallableIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectOtherCallableIface
#  * @title: OrgProjectOtherCallableIface
#  * @short_description: Generated C code for the org.project.OtherCallableIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.OtherCallableIface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_pointers[] =
# {
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_b.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_y.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_n.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_q.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_i.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_u.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_x.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_t.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_d.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_s.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_o.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_g.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_h.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_ay.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_as.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_ao.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_aay.parent_struct,
#   &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_other_callable_iface_method_info_method_with_many_args =
# {
#   {
#     -1,
#     (gchar *) "MethodWithManyArgs",
#     (GDBusArgInfo **) &_org_project_other_callable_iface_method_info_method_with_many_args_IN_ARG_pointers,
#     NULL,
#     NULL
#   },
#   "handle-method-with-many-args",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_other_callable_iface_method_info_pointers[] =
# {
#   &_org_project_other_callable_iface_method_info_method_with_many_args.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_other_callable_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.OtherCallableIface",
#     (GDBusMethodInfo **) &_org_project_other_callable_iface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-other-callable-iface",
# };
# 
# 
# /**
#  * org_project_other_callable_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_other_callable_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_other_callable_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectOtherCallableIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_other_callable_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_other_callable_iface_method_marshal_method_with_many_args (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectOtherCallableIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>.
#  */
# 
# /**
#  * OrgProjectOtherCallableIfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_method_with_many_args: Handler for the #OrgProjectOtherCallableIface::handle-method-with-many-args signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>.
#  */
# 
# typedef OrgProjectOtherCallableIfaceIface OrgProjectOtherCallableIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectOtherCallableIface, org_project_other_callable_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_other_callable_iface_default_init (OrgProjectOtherCallableIfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectOtherCallableIface::handle-method-with-many-args:
#    * @object: A #OrgProjectOtherCallableIface.
#    * @invocation: A #GDBusMethodInvocation.
#    * @arg_an_b: Argument passed by remote caller.
#    * @arg_an_y: Argument passed by remote caller.
#    * @arg_an_n: Argument passed by remote caller.
#    * @arg_an_q: Argument passed by remote caller.
#    * @arg_an_i: Argument passed by remote caller.
#    * @arg_an_u: Argument passed by remote caller.
#    * @arg_an_x: Argument passed by remote caller.
#    * @arg_an_t: Argument passed by remote caller.
#    * @arg_an_d: Argument passed by remote caller.
#    * @arg_an_s: Argument passed by remote caller.
#    * @arg_an_o: Argument passed by remote caller.
#    * @arg_an_g: Argument passed by remote caller.
#    * @arg_an_h: Argument passed by remote caller.
#    * @arg_an_ay: Argument passed by remote caller.
#    * @arg_an_as: Argument passed by remote caller.
#    * @arg_an_ao: Argument passed by remote caller.
#    * @arg_an_aay: Argument passed by remote caller.
#    * @arg_an_asv: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-OtherCallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method.
#    *
#    * 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 org_project_other_callable_iface_complete_method_with_many_args() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-method-with-many-args",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectOtherCallableIfaceIface, handle_method_with_many_args),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_other_callable_iface_method_marshal_method_with_many_args,
#     G_TYPE_BOOLEAN,
#     19,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN, G_TYPE_UCHAR, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT64, G_TYPE_UINT64, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_other_callable_iface_call_method_with_many_args:
#  * @proxy: A #OrgProjectOtherCallableIfaceProxy.
#  * @arg_an_b: Argument to pass with the method invocation.
#  * @arg_an_y: Argument to pass with the method invocation.
#  * @arg_an_n: Argument to pass with the method invocation.
#  * @arg_an_q: Argument to pass with the method invocation.
#  * @arg_an_i: Argument to pass with the method invocation.
#  * @arg_an_u: Argument to pass with the method invocation.
#  * @arg_an_x: Argument to pass with the method invocation.
#  * @arg_an_t: Argument to pass with the method invocation.
#  * @arg_an_d: Argument to pass with the method invocation.
#  * @arg_an_s: Argument to pass with the method invocation.
#  * @arg_an_o: Argument to pass with the method invocation.
#  * @arg_an_g: Argument to pass with the method invocation.
#  * @arg_an_h: Argument to pass with the method invocation.
#  * @arg_an_ay: Argument to pass with the method invocation.
#  * @arg_an_as: Argument to pass with the method invocation.
#  * @arg_an_ao: Argument to pass with the method invocation.
#  * @arg_an_aay: Argument to pass with the method invocation.
#  * @arg_an_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-OtherCallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_other_callable_iface_call_method_with_many_args_finish() to get the result of the operation.
#  *
#  * See org_project_other_callable_iface_call_method_with_many_args_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_other_callable_iface_call_method_with_many_args (
#     OrgProjectOtherCallableIface *proxy,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "MethodWithManyArgs",
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_other_callable_iface_call_method_with_many_args_finish:
#  * @proxy: A #OrgProjectOtherCallableIfaceProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_callable_iface_call_method_with_many_args().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_other_callable_iface_call_method_with_many_args().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_other_callable_iface_call_method_with_many_args_finish (
#     OrgProjectOtherCallableIface *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_call_method_with_many_args_sync:
#  * @proxy: A #OrgProjectOtherCallableIfaceProxy.
#  * @arg_an_b: Argument to pass with the method invocation.
#  * @arg_an_y: Argument to pass with the method invocation.
#  * @arg_an_n: Argument to pass with the method invocation.
#  * @arg_an_q: Argument to pass with the method invocation.
#  * @arg_an_i: Argument to pass with the method invocation.
#  * @arg_an_u: Argument to pass with the method invocation.
#  * @arg_an_x: Argument to pass with the method invocation.
#  * @arg_an_t: Argument to pass with the method invocation.
#  * @arg_an_d: Argument to pass with the method invocation.
#  * @arg_an_s: Argument to pass with the method invocation.
#  * @arg_an_o: Argument to pass with the method invocation.
#  * @arg_an_g: Argument to pass with the method invocation.
#  * @arg_an_h: Argument to pass with the method invocation.
#  * @arg_an_ay: Argument to pass with the method invocation.
#  * @arg_an_as: Argument to pass with the method invocation.
#  * @arg_an_ao: Argument to pass with the method invocation.
#  * @arg_an_aay: Argument to pass with the method invocation.
#  * @arg_an_asv: Argument to pass with the method invocation.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-OtherCallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_callable_iface_call_method_with_many_args() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_other_callable_iface_call_method_with_many_args_sync (
#     OrgProjectOtherCallableIface *proxy,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "MethodWithManyArgs",
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_complete_method_with_many_args:
#  * @object: A #OrgProjectOtherCallableIface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-OtherCallableIface.MethodWithManyArgs">MethodWithManyArgs()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_other_callable_iface_complete_method_with_many_args (
#     OrgProjectOtherCallableIface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherCallableIfaceProxy:
#  *
#  * The #OrgProjectOtherCallableIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherCallableIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherCallableIfaceProxy.
#  */
# 
# struct _OrgProjectOtherCallableIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_other_callable_iface_proxy_iface_init (OrgProjectOtherCallableIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceProxy, org_project_other_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectOtherCallableIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceProxy, org_project_other_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_other_callable_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectOtherCallableIfaceProxy *proxy = ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_other_callable_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_callable_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_callable_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_callable_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_other_callable_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectOtherCallableIfaceProxy *proxy = ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_other_callable_iface_proxy_init (OrgProjectOtherCallableIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_other_callable_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY, OrgProjectOtherCallableIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_other_callable_iface_interface_info ());
# }
# 
# static void
# org_project_other_callable_iface_proxy_class_init (OrgProjectOtherCallableIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_other_callable_iface_proxy_finalize;
#   gobject_class->get_property = org_project_other_callable_iface_proxy_get_property;
#   gobject_class->set_property = org_project_other_callable_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_other_callable_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_other_callable_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherCallableIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_other_callable_iface_proxy_iface_init (OrgProjectOtherCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_other_callable_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_other_callable_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_callable_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_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.project.OtherCallableIface", NULL);
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_callable_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_callable_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_callable_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.OtherCallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_other_callable_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_other_callable_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_other_callable_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_other_callable_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_callable_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_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.project.OtherCallableIface", NULL);
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_callable_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_callable_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_callable_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_other_callable_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_callable_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.OtherCallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherCallableIfaceSkeleton:
#  *
#  * The #OrgProjectOtherCallableIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherCallableIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherCallableIfaceSkeleton.
#  */
# 
# struct _OrgProjectOtherCallableIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_other_callable_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_other_callable_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_other_callable_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_other_callable_iface_skeleton_vtable =
# {
#   _org_project_other_callable_iface_skeleton_handle_method_call,
#   _org_project_other_callable_iface_skeleton_handle_get_property,
#   _org_project_other_callable_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_other_callable_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_other_callable_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_other_callable_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_other_callable_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_other_callable_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_other_callable_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_other_callable_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_other_callable_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_other_callable_iface_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.project.OtherCallableIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_other_callable_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_other_callable_iface_skeleton_iface_init (OrgProjectOtherCallableIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceSkeleton, org_project_other_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectOtherCallableIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherCallableIfaceSkeleton, org_project_other_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE, org_project_other_callable_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_other_callable_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectOtherCallableIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_other_callable_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_callable_iface_skeleton_init (OrgProjectOtherCallableIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_other_callable_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON, OrgProjectOtherCallableIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_other_callable_iface_skeleton_class_init (OrgProjectOtherCallableIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_other_callable_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_other_callable_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_other_callable_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_other_callable_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_other_callable_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherCallableIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_other_callable_iface_skeleton_iface_init (OrgProjectOtherCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_other_callable_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherCallableIface.top_of_page">org.project.OtherCallableIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherCallableIfaceSkeleton): The skeleton object.
#  */
# OrgProjectOtherCallableIface *
# org_project_other_callable_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_OTHER_CALLABLE_IFACE (g_object_new (TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE_SKELETON, NULL));
# }
# Error:
ok 13 __main__.TestCodegen.test_generate_methods_marshallers_multiple_out_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpiyg0aqzo
# /tmp/tmpiyg0aqzo/tmpy89phd4a.xml: 
#             <node>
#               <interface name="org.project.CallableIface">
#                 <method name="MethodWithManyArgs">
#                     <arg name='an_b' type='b' direction='out'/>
# <arg name='an_y' type='y' direction='out'/>
# <arg name='an_n' type='n' direction='out'/>
# <arg name='an_q' type='q' direction='out'/>
# <arg name='an_i' type='i' direction='out'/>
# <arg name='an_u' type='u' direction='out'/>
# <arg name='an_x' type='x' direction='out'/>
# <arg name='an_t' type='t' direction='out'/>
# <arg name='an_d' type='d' direction='out'/>
# <arg name='an_s' type='s' direction='out'/>
# <arg name='an_o' type='o' direction='out'/>
# <arg name='an_g' type='g' direction='out'/>
# <arg name='an_h' type='h' direction='out'/>
# <arg name='an_ay' type='ay' direction='out'/>
# <arg name='an_as' type='as' direction='out'/>
# <arg name='an_ao' type='ao' direction='out'/>
# <arg name='an_aay' type='aay' direction='out'/>
# <arg name='an_asv' type='a{sv}' direction='out'/>
# 
#                 </method>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpiyg0aqzo/tmpy89phd4a.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.CallableIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectCallableIface
#  * @title: OrgProjectCallableIface
#  * @short_description: Generated C code for the org.project.CallableIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.CallableIface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_pointers[] =
# {
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_b.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_y.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_n.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_q.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_i.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_u.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_x.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_t.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_d.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_s.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_o.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_g.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_h.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_ay.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_as.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_ao.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_aay.parent_struct,
#   &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _org_project_callable_iface_method_info_method_with_many_args =
# {
#   {
#     -1,
#     (gchar *) "MethodWithManyArgs",
#     NULL,
#     (GDBusArgInfo **) &_org_project_callable_iface_method_info_method_with_many_args_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-method-with-many-args",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_callable_iface_method_info_pointers[] =
# {
#   &_org_project_callable_iface_method_info_method_with_many_args.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_callable_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.CallableIface",
#     (GDBusMethodInfo **) &_org_project_callable_iface_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-callable-iface",
# };
# 
# 
# /**
#  * org_project_callable_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_callable_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_callable_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectCallableIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_callable_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_callable_iface_method_marshal_method_with_many_args (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectCallableIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  */
# 
# /**
#  * OrgProjectCallableIfaceIface:
#  * @parent_iface: The parent interface.
#  * @handle_method_with_many_args: Handler for the #OrgProjectCallableIface::handle-method-with-many-args signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  */
# 
# typedef OrgProjectCallableIfaceIface OrgProjectCallableIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectCallableIface, org_project_callable_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_callable_iface_default_init (OrgProjectCallableIfaceIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectCallableIface::handle-method-with-many-args:
#    * @object: A #OrgProjectCallableIface.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method.
#    *
#    * 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 org_project_callable_iface_complete_method_with_many_args() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-method-with-many-args",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectCallableIfaceIface, handle_method_with_many_args),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_callable_iface_method_marshal_method_with_many_args,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_callable_iface_call_method_with_many_args:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_callable_iface_call_method_with_many_args_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_call_method_with_many_args_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_callable_iface_call_method_with_many_args (
#     OrgProjectCallableIface *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "MethodWithManyArgs",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_callable_iface_call_method_with_many_args_finish:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @out_an_b: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_y: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_n: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_q: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_i: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_u: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_x: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_t: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_d: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_s: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_o: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_g: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_h: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_ay: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_as: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @out_an_ao: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @out_an_aay: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @out_an_asv: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_call_method_with_many_args().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_callable_iface_call_method_with_many_args().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_method_with_many_args_finish (
#     OrgProjectCallableIface *proxy,
#     gboolean *out_an_b,
#     guchar *out_an_y,
#     gint16 *out_an_n,
#     guint16 *out_an_q,
#     gint *out_an_i,
#     guint *out_an_u,
#     gint64 *out_an_x,
#     guint64 *out_an_t,
#     gdouble *out_an_d,
#     gchar **out_an_s,
#     gchar **out_an_o,
#     gchar **out_an_g,
#     GVariant **out_an_h,
#     gchar **out_an_ay,
#     gchar ***out_an_as,
#     gchar ***out_an_ao,
#     gchar ***out_an_aay,
#     GVariant **out_an_asv,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                  out_an_b,
#                  out_an_y,
#                  out_an_n,
#                  out_an_q,
#                  out_an_i,
#                  out_an_u,
#                  out_an_x,
#                  out_an_t,
#                  out_an_d,
#                  out_an_s,
#                  out_an_o,
#                  out_an_g,
#                  out_an_h,
#                  out_an_ay,
#                  out_an_as,
#                  out_an_ao,
#                  out_an_aay,
#                  out_an_asv);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_call_method_with_many_args_sync:
#  * @proxy: A #OrgProjectCallableIfaceProxy.
#  * @out_an_b: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_y: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_n: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_q: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_i: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_u: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_x: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_t: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_d: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_s: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_o: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_g: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_h: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_ay: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_an_as: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @out_an_ao: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @out_an_aay: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
#  * @out_an_asv: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_call_method_with_many_args() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_callable_iface_call_method_with_many_args_sync (
#     OrgProjectCallableIface *proxy,
#     gboolean *out_an_b,
#     guchar *out_an_y,
#     gint16 *out_an_n,
#     guint16 *out_an_q,
#     gint *out_an_i,
#     guint *out_an_u,
#     gint64 *out_an_x,
#     guint64 *out_an_t,
#     gdouble *out_an_d,
#     gchar **out_an_s,
#     gchar **out_an_o,
#     gchar **out_an_g,
#     GVariant **out_an_h,
#     gchar **out_an_ay,
#     gchar ***out_an_as,
#     gchar ***out_an_ao,
#     gchar ***out_an_aay,
#     GVariant **out_an_asv,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "MethodWithManyArgs",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                  out_an_b,
#                  out_an_y,
#                  out_an_n,
#                  out_an_q,
#                  out_an_i,
#                  out_an_u,
#                  out_an_x,
#                  out_an_t,
#                  out_an_d,
#                  out_an_s,
#                  out_an_o,
#                  out_an_g,
#                  out_an_h,
#                  out_an_ay,
#                  out_an_as,
#                  out_an_ao,
#                  out_an_aay,
#                  out_an_asv);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_callable_iface_complete_method_with_many_args:
#  * @object: A #OrgProjectCallableIface.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @an_b: Parameter to return.
#  * @an_y: Parameter to return.
#  * @an_n: Parameter to return.
#  * @an_q: Parameter to return.
#  * @an_i: Parameter to return.
#  * @an_u: Parameter to return.
#  * @an_x: Parameter to return.
#  * @an_t: Parameter to return.
#  * @an_d: Parameter to return.
#  * @an_s: Parameter to return.
#  * @an_o: Parameter to return.
#  * @an_g: Parameter to return.
#  * @an_h: Parameter to return.
#  * @an_ay: Parameter to return.
#  * @an_as: Parameter to return.
#  * @an_ao: Parameter to return.
#  * @an_aay: Parameter to return.
#  * @an_asv: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-CallableIface.MethodWithManyArgs">MethodWithManyArgs()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_callable_iface_complete_method_with_many_args (
#     OrgProjectCallableIface *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     gboolean an_b,
#     guchar an_y,
#     gint16 an_n,
#     guint16 an_q,
#     gint an_i,
#     guint an_u,
#     gint64 an_x,
#     guint64 an_t,
#     gdouble an_d,
#     const gchar *an_s,
#     const gchar *an_o,
#     const gchar *an_g,
#     GVariant *an_h,
#     const gchar *an_ay,
#     const gchar *const *an_as,
#     const gchar *const *an_ao,
#     const gchar *const *an_aay,
#     GVariant *an_asv)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    an_b,
#                    an_y,
#                    an_n,
#                    an_q,
#                    an_i,
#                    an_u,
#                    an_x,
#                    an_t,
#                    an_d,
#                    an_s,
#                    an_o,
#                    an_g,
#                    an_h,
#                    an_ay,
#                    an_as,
#                    an_ao,
#                    an_aay,
#                    an_asv));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectCallableIfaceProxy:
#  *
#  * The #OrgProjectCallableIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectCallableIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectCallableIfaceProxy.
#  */
# 
# struct _OrgProjectCallableIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_callable_iface_proxy_iface_init (OrgProjectCallableIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceProxy, org_project_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectCallableIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceProxy, org_project_callable_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_callable_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectCallableIfaceProxy *proxy = ORG_PROJECT_CALLABLE_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_callable_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_callable_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_callable_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_callable_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_callable_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectCallableIfaceProxy *proxy = ORG_PROJECT_CALLABLE_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_callable_iface_proxy_init (OrgProjectCallableIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_callable_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, OrgProjectCallableIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_callable_iface_interface_info ());
# }
# 
# static void
# org_project_callable_iface_proxy_class_init (OrgProjectCallableIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_callable_iface_proxy_finalize;
#   gobject_class->get_property = org_project_callable_iface_proxy_get_property;
#   gobject_class->set_property = org_project_callable_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_callable_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_callable_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectCallableIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_callable_iface_proxy_iface_init (OrgProjectCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_callable_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_callable_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_callable_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_CALLABLE_IFACE_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.project.CallableIface", NULL);
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_callable_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.CallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_callable_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_callable_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_callable_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_callable_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_CALLABLE_IFACE_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.project.CallableIface", NULL);
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_callable_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_callable_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_callable_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_callable_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_callable_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.CallableIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_CALLABLE_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectCallableIfaceSkeleton:
#  *
#  * The #OrgProjectCallableIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectCallableIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectCallableIfaceSkeleton.
#  */
# 
# struct _OrgProjectCallableIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_callable_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_CALLABLE_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_callable_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_callable_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_callable_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_callable_iface_skeleton_vtable =
# {
#   _org_project_callable_iface_skeleton_handle_method_call,
#   _org_project_callable_iface_skeleton_handle_get_property,
#   _org_project_callable_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_callable_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_callable_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_callable_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_callable_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_callable_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_callable_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_callable_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_callable_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_callable_iface_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.project.CallableIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_callable_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_callable_iface_skeleton_iface_init (OrgProjectCallableIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceSkeleton, org_project_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectCallableIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectCallableIfaceSkeleton, org_project_callable_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_CALLABLE_IFACE, org_project_callable_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_callable_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectCallableIfaceSkeleton *skeleton = ORG_PROJECT_CALLABLE_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_callable_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_callable_iface_skeleton_init (OrgProjectCallableIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_callable_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_CALLABLE_IFACE_SKELETON, OrgProjectCallableIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_callable_iface_skeleton_class_init (OrgProjectCallableIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_callable_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_callable_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_callable_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_callable_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_callable_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectCallableIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_callable_iface_skeleton_iface_init (OrgProjectCallableIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_callable_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-CallableIface.top_of_page">org.project.CallableIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectCallableIfaceSkeleton): The skeleton object.
#  */
# OrgProjectCallableIface *
# org_project_callable_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_CALLABLE_IFACE (g_object_new (TYPE_ORG_PROJECT_CALLABLE_IFACE_SKELETON, NULL));
# }
# Error:
ok 14 __main__.TestCodegen.test_generate_methods_marshallers_with_unix_fds
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp1cxpyq28
# /tmp/tmp1cxpyq28/tmp76intn1h.xml: 
#             <node>
#               <interface name="test.FDPassing">
#                 <method name="HelloFD">
#                   <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
#                   <arg name="greeting" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="s"/>
#                 </method>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp1cxpyq28/tmp76intn1h.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT_OBJECT_STRING (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectObjectStringFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         GUnixFDList *arg_fd_list,
#         const gchar *arg_greeting,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectObjectStringFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 4);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectObjectStringFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               g_marshal_value_peek_object (param_values + 2),
#               g_marshal_value_peek_string (param_values + 3),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface test.FDPassing
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:TestFDPassing
#  * @title: TestFDPassing
#  * @short_description: Generated C code for the test.FDPassing D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for test.FDPassing ---- */
# 
# static const _ExtendedGDBusArgInfo _test_fdpassing_method_info_hello_fd_IN_ARG_greeting =
# {
#   {
#     -1,
#     (gchar *) "greeting",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _test_fdpassing_method_info_hello_fd_IN_ARG_pointers[] =
# {
#   &_test_fdpassing_method_info_hello_fd_IN_ARG_greeting.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusArgInfo _test_fdpassing_method_info_hello_fd_OUT_ARG_response =
# {
#   {
#     -1,
#     (gchar *) "response",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _test_fdpassing_method_info_hello_fd_OUT_ARG_pointers[] =
# {
#   &_test_fdpassing_method_info_hello_fd_OUT_ARG_response.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusMethodInfo _test_fdpassing_method_info_hello_fd =
# {
#   {
#     -1,
#     (gchar *) "HelloFD",
#     (GDBusArgInfo **) &_test_fdpassing_method_info_hello_fd_IN_ARG_pointers,
#     (GDBusArgInfo **) &_test_fdpassing_method_info_hello_fd_OUT_ARG_pointers,
#     NULL
#   },
#   "handle-hello-fd",
#   TRUE
# };
# 
# static const GDBusMethodInfo * const _test_fdpassing_method_info_pointers[] =
# {
#   &_test_fdpassing_method_info_hello_fd.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _test_fdpassing_interface_info =
# {
#   {
#     -1,
#     (gchar *) "test.FDPassing",
#     (GDBusMethodInfo **) &_test_fdpassing_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "test-fdpassing",
# };
# 
# 
# /**
#  * test_fdpassing_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# test_fdpassing_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_test_fdpassing_interface_info.parent_struct;
# }
# 
# /**
#  * test_fdpassing_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #TestFDPassing interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# test_fdpassing_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# test_fdpassing_method_marshal_hello_fd (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT_OBJECT_STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * TestFDPassing:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link>.
#  */
# 
# /**
#  * TestFDPassingIface:
#  * @parent_iface: The parent interface.
#  * @handle_hello_fd: Handler for the #TestFDPassing::handle-hello-fd signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link>.
#  */
# 
# typedef TestFDPassingIface TestFDPassingInterface;
# G_DEFINE_INTERFACE (TestFDPassing, test_fdpassing, G_TYPE_OBJECT)
# 
# static void
# test_fdpassing_default_init (TestFDPassingIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * TestFDPassing::handle-hello-fd:
#    * @object: A #TestFDPassing.
#    * @invocation: A #GDBusMethodInvocation.
#    * @fd_list: (nullable): A #GUnixFDList or %NULL.
#    * @arg_greeting: Argument passed by remote caller.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-test-FDPassing.HelloFD">HelloFD()</link> D-Bus method.
#    *
#    * 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 test_fdpassing_complete_hello_fd() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-hello-fd",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (TestFDPassingIface, handle_hello_fd),
#     g_signal_accumulator_true_handled,
#     NULL,
#       test_fdpassing_method_marshal_hello_fd,
#     G_TYPE_BOOLEAN,
#     3,
#     G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_STRING);
# 
# }
# 
# /**
#  * test_fdpassing_call_hello_fd:
#  * @proxy: A #TestFDPassingProxy.
#  * @arg_greeting: Argument to pass with the method invocation.
#  * @fd_list: (nullable): A #GUnixFDList or %NULL.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-test-FDPassing.HelloFD">HelloFD()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call test_fdpassing_call_hello_fd_finish() to get the result of the operation.
#  *
#  * See test_fdpassing_call_hello_fd_sync() for the synchronous, blocking version of this method.
#  */
# void
# test_fdpassing_call_hello_fd (
#     TestFDPassing *proxy,
#     const gchar *arg_greeting,
#     GUnixFDList *fd_list,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
#     "HelloFD",
#     g_variant_new ("(s)",
#                    arg_greeting),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     fd_list,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * test_fdpassing_call_hello_fd_finish:
#  * @proxy: A #TestFDPassingProxy.
#  * @out_response: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_fd_list: (out) (optional) (nullable): Return location for a #GUnixFDList or %NULL to ignore.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to test_fdpassing_call_hello_fd().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with test_fdpassing_call_hello_fd().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# test_fdpassing_call_hello_fd_finish (
#     TestFDPassing *proxy,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(s)",
#                  out_response);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * test_fdpassing_call_hello_fd_sync:
#  * @proxy: A #TestFDPassingProxy.
#  * @arg_greeting: Argument to pass with the method invocation.
#  * @fd_list: (nullable): A #GUnixFDList or %NULL.
#  * @out_response: (out) (optional): Return location for return parameter or %NULL to ignore.
#  * @out_fd_list: (out) (optional) (nullable): Return location for a #GUnixFDList or %NULL.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-test-FDPassing.HelloFD">HelloFD()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See test_fdpassing_call_hello_fd() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# test_fdpassing_call_hello_fd_sync (
#     TestFDPassing *proxy,
#     const gchar *arg_greeting,
#     GUnixFDList  *fd_list,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
#     "HelloFD",
#     g_variant_new ("(s)",
#                    arg_greeting),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     fd_list,
#     out_fd_list,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "(s)",
#                  out_response);
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * test_fdpassing_complete_hello_fd:
#  * @object: A #TestFDPassing.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  * @fd_list: (nullable): A #GUnixFDList or %NULL.
#  * @response: Parameter to return.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-test-FDPassing.HelloFD">HelloFD()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# test_fdpassing_complete_hello_fd (
#     TestFDPassing *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *response)
# {
#   g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
#     g_variant_new ("(s)",
#                    response),
#     fd_list);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * TestFDPassingProxy:
#  *
#  * The #TestFDPassingProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * TestFDPassingProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #TestFDPassingProxy.
#  */
# 
# struct _TestFDPassingProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void test_fdpassing_proxy_iface_init (TestFDPassingIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (TestFDPassingProxy, test_fdpassing_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (TestFDPassingProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_TEST_FDPASSING, test_fdpassing_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (TestFDPassingProxy, test_fdpassing_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_TEST_FDPASSING, test_fdpassing_proxy_iface_init))
# 
# #endif
# static void
# test_fdpassing_proxy_finalize (GObject *object)
# {
#   TestFDPassingProxy *proxy = TEST_FDPASSING_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (test_fdpassing_proxy_parent_class)->finalize (object);
# }
# 
# static void
# test_fdpassing_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# test_fdpassing_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# test_fdpassing_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_test_fdpassing_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_TEST_FDPASSING);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_TEST_FDPASSING);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# test_fdpassing_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   TestFDPassingProxy *proxy = TEST_FDPASSING_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_test_fdpassing_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_test_fdpassing_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# test_fdpassing_proxy_init (TestFDPassingProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = test_fdpassing_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_TEST_FDPASSING_PROXY, TestFDPassingProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), test_fdpassing_interface_info ());
# }
# 
# static void
# test_fdpassing_proxy_class_init (TestFDPassingProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = test_fdpassing_proxy_finalize;
#   gobject_class->get_property = test_fdpassing_proxy_get_property;
#   gobject_class->set_property = test_fdpassing_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = test_fdpassing_proxy_g_signal;
#   proxy_class->g_properties_changed = test_fdpassing_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (TestFDPassingProxyPrivate));
# #endif
# }
# 
# static void
# test_fdpassing_proxy_iface_init (TestFDPassingIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * test_fdpassing_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call test_fdpassing_proxy_new_finish() to get the result of the operation.
#  *
#  * See test_fdpassing_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# test_fdpassing_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_TEST_FDPASSING_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", "test.FDPassing", NULL);
# }
# 
# /**
#  * test_fdpassing_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to test_fdpassing_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with test_fdpassing_proxy_new().
#  *
#  * Returns: (transfer full) (type TestFDPassingProxy): The constructed proxy object or %NULL if @error is set.
#  */
# TestFDPassing *
# test_fdpassing_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return TEST_FDPASSING (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * test_fdpassing_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See test_fdpassing_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type TestFDPassingProxy): The constructed proxy object or %NULL if @error is set.
#  */
# TestFDPassing *
# test_fdpassing_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_TEST_FDPASSING_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "test.FDPassing", NULL);
#   if (ret != NULL)
#     return TEST_FDPASSING (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * test_fdpassing_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like test_fdpassing_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call test_fdpassing_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See test_fdpassing_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# test_fdpassing_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_TEST_FDPASSING_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", "test.FDPassing", NULL);
# }
# 
# /**
#  * test_fdpassing_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to test_fdpassing_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with test_fdpassing_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type TestFDPassingProxy): The constructed proxy object or %NULL if @error is set.
#  */
# TestFDPassing *
# test_fdpassing_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return TEST_FDPASSING (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * test_fdpassing_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like test_fdpassing_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See test_fdpassing_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type TestFDPassingProxy): The constructed proxy object or %NULL if @error is set.
#  */
# TestFDPassing *
# test_fdpassing_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_TEST_FDPASSING_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "test.FDPassing", NULL);
#   if (ret != NULL)
#     return TEST_FDPASSING (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * TestFDPassingSkeleton:
#  *
#  * The #TestFDPassingSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * TestFDPassingSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #TestFDPassingSkeleton.
#  */
# 
# struct _TestFDPassingSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _test_fdpassing_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   TestFDPassingSkeleton *skeleton = TEST_FDPASSING_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_TEST_FDPASSING);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_TEST_FDPASSING);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _test_fdpassing_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   TestFDPassingSkeleton *skeleton = TEST_FDPASSING_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_test_fdpassing_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _test_fdpassing_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   TestFDPassingSkeleton *skeleton = TEST_FDPASSING_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_test_fdpassing_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _test_fdpassing_skeleton_vtable =
# {
#   _test_fdpassing_skeleton_handle_method_call,
#   _test_fdpassing_skeleton_handle_get_property,
#   _test_fdpassing_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# test_fdpassing_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return test_fdpassing_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# test_fdpassing_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_test_fdpassing_skeleton_vtable;
# }
# 
# static GVariant *
# test_fdpassing_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   TestFDPassingSkeleton *skeleton = TEST_FDPASSING_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_test_fdpassing_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _test_fdpassing_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _test_fdpassing_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _test_fdpassing_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)), "test.FDPassing", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# test_fdpassing_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void test_fdpassing_skeleton_iface_init (TestFDPassingIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (TestFDPassingSkeleton, test_fdpassing_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (TestFDPassingSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_TEST_FDPASSING, test_fdpassing_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (TestFDPassingSkeleton, test_fdpassing_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_TEST_FDPASSING, test_fdpassing_skeleton_iface_init))
# 
# #endif
# static void
# test_fdpassing_skeleton_finalize (GObject *object)
# {
#   TestFDPassingSkeleton *skeleton = TEST_FDPASSING_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (test_fdpassing_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# test_fdpassing_skeleton_init (TestFDPassingSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = test_fdpassing_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_TEST_FDPASSING_SKELETON, TestFDPassingSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# test_fdpassing_skeleton_class_init (TestFDPassingSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = test_fdpassing_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = test_fdpassing_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = test_fdpassing_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = test_fdpassing_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = test_fdpassing_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (TestFDPassingSkeletonPrivate));
# #endif
# }
# 
# static void
# test_fdpassing_skeleton_iface_init (TestFDPassingIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * test_fdpassing_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-test-FDPassing.top_of_page">test.FDPassing</link>.
#  *
#  * Returns: (transfer full) (type TestFDPassingSkeleton): The skeleton object.
#  */
# TestFDPassing *
# test_fdpassing_skeleton_new (void)
# {
#   return TEST_FDPASSING (g_object_new (TYPE_TEST_FDPASSING_SKELETON, NULL));
# }
# Error:
ok 15 __main__.TestCodegen.test_generate_rst
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp6hn877i5
# /tmp/tmp6hn877i5/tmpg568j84r.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <method name="RandomMethod"/>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6hn877i5/tmpg568j84r.xml', '--generate-rst', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 16 __main__.TestCodegen.test_generate_rst_method
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpxwmm8n5t
# /tmp/tmpxwmm8n5t/tmp9ryobk18.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- RandomMethod:
# 
#             A random test method.
#             -->
#             <method name="RandomMethod"/>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpxwmm8n5t/tmp9ryobk18.xml', '--generate-rst', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 17 __main__.TestCodegen.test_generate_rst_property
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp42mlrn79
# /tmp/tmp42mlrn79/tmpda2sp77o.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- RandomProperty:
# 
#             A random test property.
#             -->
#             <property type="s" name="RandomProperty" access="read"/>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp42mlrn79/tmpda2sp77o.xml', '--generate-rst', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 18 __main__.TestCodegen.test_generate_rst_signal
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmphaz_dcyx
# /tmp/tmphaz_dcyx/tmpynp4bhi9.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- RandomSignal:
# 
#             A random test signal.
#             -->
#             <signal name="RandomSignal"/>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmphaz_dcyx/tmpynp4bhi9.xml', '--generate-rst', 'test']
# Return code: 0
# Output:
#  
# Error:
Executing: glib/codegen.py.test
ok 19 __main__.TestCodegen.test_generate_signal_id_multiple_signal_args_types
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp7w1v2yri
# /tmp/tmp7w1v2yri/tmptfm6uzt8.xml: 
#             <node>
#               <interface name="org.project.SignalingIface">
#                 <signal name="SignalWithManyArgs">
#                     <arg name='an_b' type='b'/>
# <arg name='an_y' type='y'/>
# <arg name='an_n' type='n'/>
# <arg name='an_q' type='q'/>
# <arg name='an_i' type='i'/>
# <arg name='an_u' type='u'/>
# <arg name='an_x' type='x'/>
# <arg name='an_t' type='t'/>
# <arg name='an_d' type='d'/>
# <arg name='an_s' type='s'/>
# <arg name='an_o' type='o'/>
# <arg name='an_g' type='g'/>
# <arg name='an_h' type='h'/>
# <arg name='an_ay' type='ay'/>
# <arg name='an_as' type='as'/>
# <arg name='an_ao' type='ao'/>
# <arg name='an_aay' type='aay'/>
# <arg name='an_asv' type='a{sv}'/>
# 
#                 </signal>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp7w1v2yri/tmptfm6uzt8.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_VOID__BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (
#     GClosure     *closure,
#     GValue       *return_value G_GNUC_UNUSED,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef void (*_GDbusCodegenMarshalVoid_BooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc)
#        (void *data1,
#         gboolean arg_an_b,
#         guchar arg_an_y,
#         gint16 arg_an_n,
#         guint16 arg_an_q,
#         gint arg_an_i,
#         guint arg_an_u,
#         gint64 arg_an_x,
#         guint64 arg_an_t,
#         gdouble arg_an_d,
#         const gchar *arg_an_s,
#         const gchar *arg_an_o,
#         const gchar *arg_an_g,
#         GVariant *arg_an_h,
#         const gchar *arg_an_ay,
#         const gchar *const *arg_an_as,
#         const gchar *const *arg_an_ao,
#         const gchar *const *arg_an_aay,
#         GVariant *arg_an_asv,
#         void *data2);
#   _GDbusCodegenMarshalVoid_BooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
# 
#   g_return_if_fail (n_param_values == 19);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalVoid_BooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_boolean (param_values + 1),
#             g_marshal_value_peek_uchar (param_values + 2),
#             g_marshal_value_peek_int (param_values + 3),
#             g_marshal_value_peek_uint (param_values + 4),
#             g_marshal_value_peek_int (param_values + 5),
#             g_marshal_value_peek_uint (param_values + 6),
#             g_marshal_value_peek_int64 (param_values + 7),
#             g_marshal_value_peek_uint64 (param_values + 8),
#             g_marshal_value_peek_double (param_values + 9),
#             g_marshal_value_peek_string (param_values + 10),
#             g_marshal_value_peek_string (param_values + 11),
#             g_marshal_value_peek_string (param_values + 12),
#             g_marshal_value_peek_variant (param_values + 13),
#             g_marshal_value_peek_string (param_values + 14),
#             g_marshal_value_peek_boxed (param_values + 15),
#             g_marshal_value_peek_boxed (param_values + 16),
#             g_marshal_value_peek_boxed (param_values + 17),
#             g_marshal_value_peek_variant (param_values + 18),
#             data2);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNAL_WITH_MANY_ARGS,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_b.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_y.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_n.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_q.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_i.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_u.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_x.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_t.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_d.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_s.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_o.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_g.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_h.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ay.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_as.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ao.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_aay.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_signal_with_many_args =
# {
#   {
#     -1,
#     (gchar *) "SignalWithManyArgs",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_pointers,
#     NULL
#   },
#   "signal-with-many-args"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_signal_with_many_args.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_signal_with_many_args (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_VOID__BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @signal_with_many_args: Handler for the #OrgProjectSignalingIface::signal-with-many-args signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::signal-with-many-args:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_b: Argument.
#    * @arg_an_y: Argument.
#    * @arg_an_n: Argument.
#    * @arg_an_q: Argument.
#    * @arg_an_i: Argument.
#    * @arg_an_u: Argument.
#    * @arg_an_x: Argument.
#    * @arg_an_t: Argument.
#    * @arg_an_d: Argument.
#    * @arg_an_s: Argument.
#    * @arg_an_o: Argument.
#    * @arg_an_g: Argument.
#    * @arg_an_h: Argument.
#    * @arg_an_ay: Argument.
#    * @arg_an_as: Argument.
#    * @arg_an_ao: Argument.
#    * @arg_an_aay: Argument.
#    * @arg_an_asv: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SignalWithManyArgs">"SignalWithManyArgs"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIGNAL_WITH_MANY_ARGS] =
#     g_signal_new ("signal-with-many-args",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, signal_with_many_args),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_signal_with_many_args,
#       G_TYPE_NONE,
#       18, G_TYPE_BOOLEAN, G_TYPE_UCHAR, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT64, G_TYPE_UINT64, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_signal_with_many_args:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_b: Argument to pass with the signal.
#  * @arg_an_y: Argument to pass with the signal.
#  * @arg_an_n: Argument to pass with the signal.
#  * @arg_an_q: Argument to pass with the signal.
#  * @arg_an_i: Argument to pass with the signal.
#  * @arg_an_u: Argument to pass with the signal.
#  * @arg_an_x: Argument to pass with the signal.
#  * @arg_an_t: Argument to pass with the signal.
#  * @arg_an_d: Argument to pass with the signal.
#  * @arg_an_s: Argument to pass with the signal.
#  * @arg_an_o: Argument to pass with the signal.
#  * @arg_an_g: Argument to pass with the signal.
#  * @arg_an_h: Argument to pass with the signal.
#  * @arg_an_ay: Argument to pass with the signal.
#  * @arg_an_as: Argument to pass with the signal.
#  * @arg_an_ao: Argument to pass with the signal.
#  * @arg_an_aay: Argument to pass with the signal.
#  * @arg_an_asv: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SignalWithManyArgs">"SignalWithManyArgs"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_signal_with_many_args (
#     OrgProjectSignalingIface *object,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIGNAL_WITH_MANY_ARGS], 0, arg_an_b, arg_an_y, arg_an_n, arg_an_q, arg_an_i, arg_an_u, arg_an_x, arg_an_t, arg_an_d, arg_an_s, arg_an_o, arg_an_g, arg_an_h, arg_an_ay, arg_an_as, arg_an_ao, arg_an_aay, arg_an_asv);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_signal_with_many_args (
#     OrgProjectSignalingIface *object,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SignalWithManyArgs",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->signal_with_many_args = _org_project_signaling_iface_on_signal_signal_with_many_args;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
ok 20 __main__.TestCodegen.test_generate_signal_id_multiple_signals_types
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpm505kkrl
# /tmp/tmpm505kkrl/tmp1s4fc0o2.xml: 
#             <node>
#               <interface name="org.project.SignalingIface">
#                 <signal name="NoArgSignal" />
#                 <signal name='SingleArgSignalB'><arg name='an_b' type='b'/></signal><signal name='SingleArgSignalY'><arg name='an_y' type='y'/></signal><signal name='SingleArgSignalN'><arg name='an_n' type='n'/></signal><signal name='SingleArgSignalQ'><arg name='an_q' type='q'/></signal><signal name='SingleArgSignalI'><arg name='an_i' type='i'/></signal><signal name='SingleArgSignalU'><arg name='an_u' type='u'/></signal><signal name='SingleArgSignalX'><arg name='an_x' type='x'/></signal><signal name='SingleArgSignalT'><arg name='an_t' type='t'/></signal><signal name='SingleArgSignalD'><arg name='an_d' type='d'/></signal><signal name='SingleArgSignalS'><arg name='an_s' type='s'/></signal><signal name='SingleArgSignalO'><arg name='an_o' type='o'/></signal><signal name='SingleArgSignalG'><arg name='an_g' type='g'/></signal><signal name='SingleArgSignalH'><arg name='an_h' type='h'/></signal><signal name='SingleArgSignalAY'><arg name='an_ay' type='ay'/></signal><signal name='SingleArgSignalAS'><arg name='an_as' type='as'/></signal><signal name='SingleArgSignalAO'><arg name='an_ao' type='ao'/></signal><signal name='SingleArgSignalAAY'><arg name='an_aay' type='aay'/></signal><signal name='SingleArgSignalASV'><arg name='an_asv' type='a{sv}'/></signal>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpm505kkrl/tmp1s4fc0o2.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_VOID__INT64 (
#     GClosure     *closure,
#     GValue       *return_value G_GNUC_UNUSED,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef void (*_GDbusCodegenMarshalVoid_Int64Func)
#        (void *data1,
#         gint64 arg_an_x,
#         void *data2);
#   _GDbusCodegenMarshalVoid_Int64Func callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalVoid_Int64Func)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_int64 (param_values + 1),
#             data2);
# }
# 
# static void
# _g_dbus_codegen_marshal_VOID__UINT64 (
#     GClosure     *closure,
#     GValue       *return_value G_GNUC_UNUSED,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef void (*_GDbusCodegenMarshalVoid_Uint64Func)
#        (void *data1,
#         guint64 arg_an_t,
#         void *data2);
#   _GDbusCodegenMarshalVoid_Uint64Func callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalVoid_Uint64Func)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_uint64 (param_values + 1),
#             data2);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_NO_ARG_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_B,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Y,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_N,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Q,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_I,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_U,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_X,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_T,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_D,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_S,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_O,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_G,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_H,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AY,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AS,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AO,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AAY,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_ASV,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[19] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_no_arg_signal =
# {
#   {
#     -1,
#     (gchar *) "NoArgSignal",
#     NULL,
#     NULL
#   },
#   "no-arg-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_an_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_b =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalB",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-b"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_an_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_y =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalY",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-y"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_an_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_n =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalN",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-n"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_an_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_q =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalQ",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-q"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_an_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_i =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalI",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-i"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_an_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_u =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalU",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-u"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_an_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_x =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalX",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-x"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_an_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_t =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalT",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-t"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_an_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_d =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalD",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-d"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_an_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_s =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalS",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-s"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_an_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_o =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalO",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-o"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_an_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_g =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalG",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-g"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_an_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_h =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalH",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-h"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_an_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_ay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAY",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-ay"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_an_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_as =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAS",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-as"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_an_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_ao =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAO",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-ao"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_an_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_aay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAAY",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-aay"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_asv =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalASV",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-asv"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_no_arg_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_b.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_y.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_n.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_q.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_i.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_u.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_x.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_t.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_d.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_s.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_o.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_g.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_h.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ay.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_as.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ao.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_aay.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_no_arg_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_b (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOOLEAN (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_y (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__UCHAR (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_n (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__INT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_q (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__UINT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_i (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__INT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_u (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__UINT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_x (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_VOID__INT64 (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_t (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_VOID__UINT64 (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_d (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__DOUBLE (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_s (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_o (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_g (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_h (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_ay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_as (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_ao (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_aay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_asv (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @no_arg_signal: Handler for the #OrgProjectSignalingIface::no-arg-signal signal.
#  * @single_arg_signal_aay: Handler for the #OrgProjectSignalingIface::single-arg-signal-aay signal.
#  * @single_arg_signal_ao: Handler for the #OrgProjectSignalingIface::single-arg-signal-ao signal.
#  * @single_arg_signal_as: Handler for the #OrgProjectSignalingIface::single-arg-signal-as signal.
#  * @single_arg_signal_asv: Handler for the #OrgProjectSignalingIface::single-arg-signal-asv signal.
#  * @single_arg_signal_ay: Handler for the #OrgProjectSignalingIface::single-arg-signal-ay signal.
#  * @single_arg_signal_b: Handler for the #OrgProjectSignalingIface::single-arg-signal-b signal.
#  * @single_arg_signal_d: Handler for the #OrgProjectSignalingIface::single-arg-signal-d signal.
#  * @single_arg_signal_g: Handler for the #OrgProjectSignalingIface::single-arg-signal-g signal.
#  * @single_arg_signal_h: Handler for the #OrgProjectSignalingIface::single-arg-signal-h signal.
#  * @single_arg_signal_i: Handler for the #OrgProjectSignalingIface::single-arg-signal-i signal.
#  * @single_arg_signal_n: Handler for the #OrgProjectSignalingIface::single-arg-signal-n signal.
#  * @single_arg_signal_o: Handler for the #OrgProjectSignalingIface::single-arg-signal-o signal.
#  * @single_arg_signal_q: Handler for the #OrgProjectSignalingIface::single-arg-signal-q signal.
#  * @single_arg_signal_s: Handler for the #OrgProjectSignalingIface::single-arg-signal-s signal.
#  * @single_arg_signal_t: Handler for the #OrgProjectSignalingIface::single-arg-signal-t signal.
#  * @single_arg_signal_u: Handler for the #OrgProjectSignalingIface::single-arg-signal-u signal.
#  * @single_arg_signal_x: Handler for the #OrgProjectSignalingIface::single-arg-signal-x signal.
#  * @single_arg_signal_y: Handler for the #OrgProjectSignalingIface::single-arg-signal-y signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::no-arg-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.NoArgSignal">"NoArgSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_NO_ARG_SIGNAL] =
#     g_signal_new ("no-arg-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, no_arg_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_no_arg_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-b:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_b: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalB">"SingleArgSignalB"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_B] =
#     g_signal_new ("single-arg-signal-b",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_b),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_b,
#       G_TYPE_NONE,
#       1, G_TYPE_BOOLEAN);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-y:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_y: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalY">"SingleArgSignalY"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Y] =
#     g_signal_new ("single-arg-signal-y",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_y),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_y,
#       G_TYPE_NONE,
#       1, G_TYPE_UCHAR);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-n:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_n: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalN">"SingleArgSignalN"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_N] =
#     g_signal_new ("single-arg-signal-n",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_n),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_n,
#       G_TYPE_NONE,
#       1, G_TYPE_INT);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-q:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_q: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalQ">"SingleArgSignalQ"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Q] =
#     g_signal_new ("single-arg-signal-q",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_q),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_q,
#       G_TYPE_NONE,
#       1, G_TYPE_UINT);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-i:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_i: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalI">"SingleArgSignalI"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_I] =
#     g_signal_new ("single-arg-signal-i",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_i),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_i,
#       G_TYPE_NONE,
#       1, G_TYPE_INT);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-u:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_u: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalU">"SingleArgSignalU"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_U] =
#     g_signal_new ("single-arg-signal-u",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_u),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_u,
#       G_TYPE_NONE,
#       1, G_TYPE_UINT);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-x:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_x: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalX">"SingleArgSignalX"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_X] =
#     g_signal_new ("single-arg-signal-x",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_x),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_x,
#       G_TYPE_NONE,
#       1, G_TYPE_INT64);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-t:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_t: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalT">"SingleArgSignalT"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_T] =
#     g_signal_new ("single-arg-signal-t",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_t),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_t,
#       G_TYPE_NONE,
#       1, G_TYPE_UINT64);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-d:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_d: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalD">"SingleArgSignalD"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_D] =
#     g_signal_new ("single-arg-signal-d",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_d),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_d,
#       G_TYPE_NONE,
#       1, G_TYPE_DOUBLE);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-s:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_s: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalS">"SingleArgSignalS"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_S] =
#     g_signal_new ("single-arg-signal-s",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_s),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_s,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-o:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_o: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalO">"SingleArgSignalO"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_O] =
#     g_signal_new ("single-arg-signal-o",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_o),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_o,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-g:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_g: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalG">"SingleArgSignalG"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_G] =
#     g_signal_new ("single-arg-signal-g",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_g),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_g,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-h:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_h: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalH">"SingleArgSignalH"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_H] =
#     g_signal_new ("single-arg-signal-h",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_h),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_h,
#       G_TYPE_NONE,
#       1, G_TYPE_VARIANT);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-ay:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_ay: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAY">"SingleArgSignalAY"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AY] =
#     g_signal_new ("single-arg-signal-ay",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_ay),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_ay,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-as:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_as: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAS">"SingleArgSignalAS"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AS] =
#     g_signal_new ("single-arg-signal-as",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_as),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_as,
#       G_TYPE_NONE,
#       1, G_TYPE_STRV);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-ao:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_ao: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAO">"SingleArgSignalAO"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AO] =
#     g_signal_new ("single-arg-signal-ao",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_ao),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_ao,
#       G_TYPE_NONE,
#       1, G_TYPE_STRV);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-aay:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_aay: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAAY">"SingleArgSignalAAY"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AAY] =
#     g_signal_new ("single-arg-signal-aay",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_aay),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_aay,
#       G_TYPE_NONE,
#       1, G_TYPE_STRV);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-asv:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_asv: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalASV">"SingleArgSignalASV"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_ASV] =
#     g_signal_new ("single-arg-signal-asv",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_asv),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_asv,
#       G_TYPE_NONE,
#       1, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_no_arg_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.NoArgSignal">"NoArgSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_no_arg_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_NO_ARG_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_b:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_b: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalB">"SingleArgSignalB"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_b (
#     OrgProjectSignalingIface *object,
#     gboolean arg_an_b)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_B], 0, arg_an_b);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_y:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_y: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalY">"SingleArgSignalY"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_y (
#     OrgProjectSignalingIface *object,
#     guchar arg_an_y)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Y], 0, arg_an_y);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_n:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_n: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalN">"SingleArgSignalN"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_n (
#     OrgProjectSignalingIface *object,
#     gint16 arg_an_n)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_N], 0, arg_an_n);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_q:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_q: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalQ">"SingleArgSignalQ"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_q (
#     OrgProjectSignalingIface *object,
#     guint16 arg_an_q)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Q], 0, arg_an_q);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_i:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_i: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalI">"SingleArgSignalI"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_i (
#     OrgProjectSignalingIface *object,
#     gint arg_an_i)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_I], 0, arg_an_i);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_u:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_u: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalU">"SingleArgSignalU"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_u (
#     OrgProjectSignalingIface *object,
#     guint arg_an_u)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_U], 0, arg_an_u);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_x:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_x: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalX">"SingleArgSignalX"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_x (
#     OrgProjectSignalingIface *object,
#     gint64 arg_an_x)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_X], 0, arg_an_x);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_t:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_t: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalT">"SingleArgSignalT"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_t (
#     OrgProjectSignalingIface *object,
#     guint64 arg_an_t)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_T], 0, arg_an_t);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_d:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_d: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalD">"SingleArgSignalD"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_d (
#     OrgProjectSignalingIface *object,
#     gdouble arg_an_d)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_D], 0, arg_an_d);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_s:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_s: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalS">"SingleArgSignalS"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_s (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_s)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_S], 0, arg_an_s);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_o:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_o: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalO">"SingleArgSignalO"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_o (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_o)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_O], 0, arg_an_o);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_g:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_g: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalG">"SingleArgSignalG"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_g (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_g)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_G], 0, arg_an_g);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_h:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_h: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalH">"SingleArgSignalH"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_h (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_an_h)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_H], 0, arg_an_h);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_ay:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_ay: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAY">"SingleArgSignalAY"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_ay (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_ay)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AY], 0, arg_an_ay);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_as:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_as: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAS">"SingleArgSignalAS"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_as (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_an_as)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AS], 0, arg_an_as);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_ao:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_ao: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAO">"SingleArgSignalAO"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_ao (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_an_ao)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AO], 0, arg_an_ao);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_aay:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_aay: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAAY">"SingleArgSignalAAY"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_aay (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_an_aay)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AAY], 0, arg_an_aay);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_asv:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_asv: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalASV">"SingleArgSignalASV"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_asv (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_an_asv)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_ASV], 0, arg_an_asv);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_no_arg_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "NoArgSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_b (
#     OrgProjectSignalingIface *object,
#     gboolean arg_an_b)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(b)",
#                    arg_an_b));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalB",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_y (
#     OrgProjectSignalingIface *object,
#     guchar arg_an_y)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(y)",
#                    arg_an_y));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalY",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_n (
#     OrgProjectSignalingIface *object,
#     gint16 arg_an_n)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(n)",
#                    arg_an_n));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalN",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_q (
#     OrgProjectSignalingIface *object,
#     guint16 arg_an_q)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(q)",
#                    arg_an_q));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalQ",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_i (
#     OrgProjectSignalingIface *object,
#     gint arg_an_i)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(i)",
#                    arg_an_i));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalI",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_u (
#     OrgProjectSignalingIface *object,
#     guint arg_an_u)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(u)",
#                    arg_an_u));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalU",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_x (
#     OrgProjectSignalingIface *object,
#     gint64 arg_an_x)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(x)",
#                    arg_an_x));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalX",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_t (
#     OrgProjectSignalingIface *object,
#     guint64 arg_an_t)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(t)",
#                    arg_an_t));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalT",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_d (
#     OrgProjectSignalingIface *object,
#     gdouble arg_an_d)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(d)",
#                    arg_an_d));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalD",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_s (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_s)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(s)",
#                    arg_an_s));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalS",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_o (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_o)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(o)",
#                    arg_an_o));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalO",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_g (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_g)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(g)",
#                    arg_an_g));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalG",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_h (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_an_h)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(@h)",
#                    arg_an_h));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalH",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_ay (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_an_ay)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^ay)",
#                    arg_an_ay));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAY",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_as (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_an_as)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^as)",
#                    arg_an_as));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAS",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_ao (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_an_ao)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^ao)",
#                    arg_an_ao));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAO",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_aay (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_an_aay)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^aay)",
#                    arg_an_aay));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAAY",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_asv (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_an_asv)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(@a{sv})",
#                    arg_an_asv));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalASV",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->no_arg_signal = _org_project_signaling_iface_on_signal_no_arg_signal;
#   iface->single_arg_signal_b = _org_project_signaling_iface_on_signal_single_arg_signal_b;
#   iface->single_arg_signal_y = _org_project_signaling_iface_on_signal_single_arg_signal_y;
#   iface->single_arg_signal_n = _org_project_signaling_iface_on_signal_single_arg_signal_n;
#   iface->single_arg_signal_q = _org_project_signaling_iface_on_signal_single_arg_signal_q;
#   iface->single_arg_signal_i = _org_project_signaling_iface_on_signal_single_arg_signal_i;
#   iface->single_arg_signal_u = _org_project_signaling_iface_on_signal_single_arg_signal_u;
#   iface->single_arg_signal_x = _org_project_signaling_iface_on_signal_single_arg_signal_x;
#   iface->single_arg_signal_t = _org_project_signaling_iface_on_signal_single_arg_signal_t;
#   iface->single_arg_signal_d = _org_project_signaling_iface_on_signal_single_arg_signal_d;
#   iface->single_arg_signal_s = _org_project_signaling_iface_on_signal_single_arg_signal_s;
#   iface->single_arg_signal_o = _org_project_signaling_iface_on_signal_single_arg_signal_o;
#   iface->single_arg_signal_g = _org_project_signaling_iface_on_signal_single_arg_signal_g;
#   iface->single_arg_signal_h = _org_project_signaling_iface_on_signal_single_arg_signal_h;
#   iface->single_arg_signal_ay = _org_project_signaling_iface_on_signal_single_arg_signal_ay;
#   iface->single_arg_signal_as = _org_project_signaling_iface_on_signal_single_arg_signal_as;
#   iface->single_arg_signal_ao = _org_project_signaling_iface_on_signal_single_arg_signal_ao;
#   iface->single_arg_signal_aay = _org_project_signaling_iface_on_signal_single_arg_signal_aay;
#   iface->single_arg_signal_asv = _org_project_signaling_iface_on_signal_single_arg_signal_asv;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
ok 21 __main__.TestCodegen.test_generate_signal_id_simple_signal
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp62qyy1g_
# /tmp/tmp62qyy1g_/tmpn2k3vdos.xml: 
#             <node>
#               <interface name="org.project.UsefulInterface">
#                 <signal name="SimpleSignal"/>
#               </interface>
#               <interface name="org.project.OtherIface">
#                 <signal name="SimpleSignal"/>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp62qyy1g_/tmpn2k3vdos.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.UsefulInterface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectUsefulInterface
#  * @title: OrgProjectUsefulInterface
#  * @short_description: Generated C code for the org.project.UsefulInterface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_USEFUL_INTERFACE_SIMPLE_SIGNAL,
# };
# 
# static unsigned _ORG_PROJECT_USEFUL_INTERFACE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for org.project.UsefulInterface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_useful_interface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const GDBusSignalInfo * const _org_project_useful_interface_signal_info_pointers[] =
# {
#   &_org_project_useful_interface_signal_info_simple_signal.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_useful_interface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.UsefulInterface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_useful_interface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-useful-interface",
# };
# 
# 
# /**
#  * org_project_useful_interface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_useful_interface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_useful_interface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectUsefulInterface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_useful_interface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_useful_interface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectUsefulInterface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectUsefulInterface::simple-signal signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  */
# 
# typedef OrgProjectUsefulInterfaceIface OrgProjectUsefulInterfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectUsefulInterface, org_project_useful_interface, G_TYPE_OBJECT)
# 
# static void
# org_project_useful_interface_default_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectUsefulInterface::simple-signal:
#    * @object: A #OrgProjectUsefulInterface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-UsefulInterface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_USEFUL_INTERFACE_SIGNALS[_ORG_PROJECT_USEFUL_INTERFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_useful_interface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
# }
# 
# /**
#  * org_project_useful_interface_emit_simple_signal:
#  * @object: A #OrgProjectUsefulInterface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-UsefulInterface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_useful_interface_emit_simple_signal (
#     OrgProjectUsefulInterface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_USEFUL_INTERFACE_SIGNALS[_ORG_PROJECT_USEFUL_INTERFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceProxy:
#  *
#  * The #OrgProjectUsefulInterfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceProxy.
#  */
# 
# struct _OrgProjectUsefulInterfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceProxy, org_project_useful_interface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_proxy_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_proxy_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_useful_interface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_useful_interface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_useful_interface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectUsefulInterfaceProxy *proxy = ORG_PROJECT_USEFUL_INTERFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_useful_interface_proxy_init (OrgProjectUsefulInterfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_useful_interface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, OrgProjectUsefulInterfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_useful_interface_interface_info ());
# }
# 
# static void
# org_project_useful_interface_proxy_class_init (OrgProjectUsefulInterfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_useful_interface_proxy_finalize;
#   gobject_class->get_property = org_project_useful_interface_proxy_get_property;
#   gobject_class->set_property = org_project_useful_interface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_useful_interface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_useful_interface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_proxy_iface_init (OrgProjectUsefulInterfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_useful_interface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_useful_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_useful_interface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_useful_interface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_USEFUL_INTERFACE_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.project.UsefulInterface", NULL);
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_useful_interface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_useful_interface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_useful_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_useful_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.UsefulInterface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_USEFUL_INTERFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeleton:
#  *
#  * The #OrgProjectUsefulInterfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectUsefulInterfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectUsefulInterfaceSkeleton.
#  */
# 
# struct _OrgProjectUsefulInterfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_useful_interface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_USEFUL_INTERFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_useful_interface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_useful_interface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_useful_interface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_useful_interface_skeleton_vtable =
# {
#   _org_project_useful_interface_skeleton_handle_method_call,
#   _org_project_useful_interface_skeleton_handle_get_property,
#   _org_project_useful_interface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_useful_interface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_useful_interface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_useful_interface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_useful_interface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_useful_interface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_useful_interface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_useful_interface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_useful_interface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_useful_interface_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.project.UsefulInterface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_useful_interface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_useful_interface_on_signal_simple_signal (
#     OrgProjectUsefulInterface *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.UsefulInterface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectUsefulInterfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectUsefulInterfaceSkeleton, org_project_useful_interface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_USEFUL_INTERFACE, org_project_useful_interface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_useful_interface_skeleton_finalize (GObject *object)
# {
#   OrgProjectUsefulInterfaceSkeleton *skeleton = ORG_PROJECT_USEFUL_INTERFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_useful_interface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_useful_interface_skeleton_init (OrgProjectUsefulInterfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_useful_interface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, OrgProjectUsefulInterfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_useful_interface_skeleton_class_init (OrgProjectUsefulInterfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_useful_interface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_useful_interface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_useful_interface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_useful_interface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_useful_interface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectUsefulInterfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_useful_interface_skeleton_iface_init (OrgProjectUsefulInterfaceIface *iface)
# {
#   iface->simple_signal = _org_project_useful_interface_on_signal_simple_signal;
# }
# 
# /**
#  * org_project_useful_interface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-UsefulInterface.top_of_page">org.project.UsefulInterface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectUsefulInterfaceSkeleton): The skeleton object.
#  */
# OrgProjectUsefulInterface *
# org_project_useful_interface_skeleton_new (void)
# {
#   return ORG_PROJECT_USEFUL_INTERFACE (g_object_new (TYPE_ORG_PROJECT_USEFUL_INTERFACE_SKELETON, NULL));
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.OtherIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectOtherIface
#  * @title: OrgProjectOtherIface
#  * @short_description: Generated C code for the org.project.OtherIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_OTHER_IFACE_SIMPLE_SIGNAL,
# };
# 
# static unsigned _ORG_PROJECT_OTHER_IFACE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for org.project.OtherIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_other_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const GDBusSignalInfo * const _org_project_other_iface_signal_info_pointers[] =
# {
#   &_org_project_other_iface_signal_info_simple_signal.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_other_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.OtherIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_other_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-other-iface",
# };
# 
# 
# /**
#  * org_project_other_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_other_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_other_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_other_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectOtherIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_other_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_other_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectOtherIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link>.
#  */
# 
# /**
#  * OrgProjectOtherIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectOtherIface::simple-signal signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link>.
#  */
# 
# typedef OrgProjectOtherIfaceIface OrgProjectOtherIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectOtherIface, org_project_other_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_other_iface_default_init (OrgProjectOtherIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectOtherIface::simple-signal:
#    * @object: A #OrgProjectOtherIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-OtherIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_OTHER_IFACE_SIGNALS[_ORG_PROJECT_OTHER_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectOtherIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_other_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
# }
# 
# /**
#  * org_project_other_iface_emit_simple_signal:
#  * @object: A #OrgProjectOtherIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-OtherIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_other_iface_emit_simple_signal (
#     OrgProjectOtherIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_OTHER_IFACE_SIGNALS[_ORG_PROJECT_OTHER_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherIfaceProxy:
#  *
#  * The #OrgProjectOtherIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherIfaceProxy.
#  */
# 
# struct _OrgProjectOtherIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_other_iface_proxy_iface_init (OrgProjectOtherIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherIfaceProxy, org_project_other_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectOtherIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_IFACE, org_project_other_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherIfaceProxy, org_project_other_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_IFACE, org_project_other_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_other_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectOtherIfaceProxy *proxy = ORG_PROJECT_OTHER_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_other_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_other_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_OTHER_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_other_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectOtherIfaceProxy *proxy = ORG_PROJECT_OTHER_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_other_iface_proxy_init (OrgProjectOtherIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_other_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_OTHER_IFACE_PROXY, OrgProjectOtherIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_other_iface_interface_info ());
# }
# 
# static void
# org_project_other_iface_proxy_class_init (OrgProjectOtherIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_other_iface_proxy_finalize;
#   gobject_class->get_property = org_project_other_iface_proxy_get_property;
#   gobject_class->set_property = org_project_other_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_other_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_other_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_other_iface_proxy_iface_init (OrgProjectOtherIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_other_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_other_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_other_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_IFACE_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.project.OtherIface", NULL);
# }
# 
# /**
#  * org_project_other_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherIface *
# org_project_other_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherIface *
# org_project_other_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.OtherIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_other_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_other_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_other_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_other_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_IFACE_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.project.OtherIface", NULL);
# }
# 
# /**
#  * org_project_other_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherIface *
# org_project_other_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_other_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherIface *
# org_project_other_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.OtherIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherIfaceSkeleton:
#  *
#  * The #OrgProjectOtherIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherIfaceSkeleton.
#  */
# 
# struct _OrgProjectOtherIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_other_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectOtherIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_OTHER_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_other_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_other_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_other_iface_skeleton_vtable =
# {
#   _org_project_other_iface_skeleton_handle_method_call,
#   _org_project_other_iface_skeleton_handle_get_property,
#   _org_project_other_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_other_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_other_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_other_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_other_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_other_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectOtherIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_other_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_other_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_other_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_other_iface_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.project.OtherIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_other_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_other_iface_on_signal_simple_signal (
#     OrgProjectOtherIface *object)
# {
#   OrgProjectOtherIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.OtherIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_other_iface_skeleton_iface_init (OrgProjectOtherIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherIfaceSkeleton, org_project_other_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectOtherIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_IFACE, org_project_other_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherIfaceSkeleton, org_project_other_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_IFACE, org_project_other_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_other_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectOtherIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_other_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_iface_skeleton_init (OrgProjectOtherIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_other_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_OTHER_IFACE_SKELETON, OrgProjectOtherIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_other_iface_skeleton_class_init (OrgProjectOtherIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_other_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_other_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_other_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_other_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_other_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_other_iface_skeleton_iface_init (OrgProjectOtherIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_other_iface_on_signal_simple_signal;
# }
# 
# /**
#  * org_project_other_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherIface.top_of_page">org.project.OtherIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherIfaceSkeleton): The skeleton object.
#  */
# OrgProjectOtherIface *
# org_project_other_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_OTHER_IFACE (g_object_new (TYPE_ORG_PROJECT_OTHER_IFACE_SKELETON, NULL));
# }
# Error:
ok 22 __main__.TestCodegen.test_generate_signals_marshaller_simple_signal
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpv410vbyh
# /tmp/tmpv410vbyh/tmpk97g111n.xml: 
#             <node>
#               <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#               </interface>
#               <interface name="org.project.OtherSignalingIface">
#                 <signal name="SimpleSignal"/>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpv410vbyh/tmpk97g111n.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.OtherSignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectOtherSignalingIface
#  * @title: OrgProjectOtherSignalingIface
#  * @short_description: Generated C code for the org.project.OtherSignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_OTHER_SIGNALING_IFACE_SIMPLE_SIGNAL,
# };
# 
# static unsigned _ORG_PROJECT_OTHER_SIGNALING_IFACE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for org.project.OtherSignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_other_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const GDBusSignalInfo * const _org_project_other_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_other_signaling_iface_signal_info_simple_signal.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_other_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.OtherSignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_other_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-other-signaling-iface",
# };
# 
# 
# /**
#  * org_project_other_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_other_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_other_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_other_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectOtherSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_other_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_other_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectOtherSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectOtherSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectOtherSignalingIface::simple-signal signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link>.
#  */
# 
# typedef OrgProjectOtherSignalingIfaceIface OrgProjectOtherSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectOtherSignalingIface, org_project_other_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_other_signaling_iface_default_init (OrgProjectOtherSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectOtherSignalingIface::simple-signal:
#    * @object: A #OrgProjectOtherSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-OtherSignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_OTHER_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_OTHER_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectOtherSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_other_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
# }
# 
# /**
#  * org_project_other_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectOtherSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-OtherSignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_other_signaling_iface_emit_simple_signal (
#     OrgProjectOtherSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_OTHER_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_OTHER_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherSignalingIfaceProxy:
#  *
#  * The #OrgProjectOtherSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectOtherSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_other_signaling_iface_proxy_iface_init (OrgProjectOtherSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherSignalingIfaceProxy, org_project_other_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectOtherSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE, org_project_other_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherSignalingIfaceProxy, org_project_other_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE, org_project_other_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_other_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectOtherSignalingIfaceProxy *proxy = ORG_PROJECT_OTHER_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_other_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_other_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_other_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_other_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectOtherSignalingIfaceProxy *proxy = ORG_PROJECT_OTHER_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_other_signaling_iface_proxy_init (OrgProjectOtherSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_other_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_PROXY, OrgProjectOtherSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_other_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_other_signaling_iface_proxy_class_init (OrgProjectOtherSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_other_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_other_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_other_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_other_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_other_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_other_signaling_iface_proxy_iface_init (OrgProjectOtherSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_other_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_other_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_other_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_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.project.OtherSignalingIface", NULL);
# }
# 
# /**
#  * org_project_other_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherSignalingIface *
# org_project_other_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherSignalingIface *
# org_project_other_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.OtherSignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_other_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_other_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_other_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_other_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_other_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_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.project.OtherSignalingIface", NULL);
# }
# 
# /**
#  * org_project_other_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_other_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_other_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectOtherSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherSignalingIface *
# org_project_other_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_other_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_other_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_other_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectOtherSignalingIface *
# org_project_other_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.OtherSignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_OTHER_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectOtherSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectOtherSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectOtherSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectOtherSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectOtherSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_other_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectOtherSignalingIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_other_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherSignalingIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_other_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectOtherSignalingIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_other_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_other_signaling_iface_skeleton_vtable =
# {
#   _org_project_other_signaling_iface_skeleton_handle_method_call,
#   _org_project_other_signaling_iface_skeleton_handle_get_property,
#   _org_project_other_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_other_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_other_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_other_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_other_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_other_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectOtherSignalingIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_other_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_other_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_other_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_other_signaling_iface_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.project.OtherSignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_other_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_other_signaling_iface_on_signal_simple_signal (
#     OrgProjectOtherSignalingIface *object)
# {
#   OrgProjectOtherSignalingIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.OtherSignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_other_signaling_iface_skeleton_iface_init (OrgProjectOtherSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherSignalingIfaceSkeleton, org_project_other_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectOtherSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE, org_project_other_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectOtherSignalingIfaceSkeleton, org_project_other_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE, org_project_other_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_other_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectOtherSignalingIfaceSkeleton *skeleton = ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_other_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_other_signaling_iface_skeleton_init (OrgProjectOtherSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_other_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON, OrgProjectOtherSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_other_signaling_iface_skeleton_class_init (OrgProjectOtherSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_other_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_other_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_other_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_other_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_other_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectOtherSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_other_signaling_iface_skeleton_iface_init (OrgProjectOtherSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_other_signaling_iface_on_signal_simple_signal;
# }
# 
# /**
#  * org_project_other_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-OtherSignalingIface.top_of_page">org.project.OtherSignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectOtherSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectOtherSignalingIface *
# org_project_other_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_OTHER_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
ok 23 __main__.TestCodegen.test_generate_signals_marshaller_single_typed_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpeh8wmyg4
# /tmp/tmpeh8wmyg4/tmpm2ppt0rx.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalB">
#                     <arg name="arg_b" type="b"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpm2ppt0rx.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_B,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_arg_b =
# {
#   {
#     -1,
#     (gchar *) "arg_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_arg_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_b =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalB",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_b_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-b"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_b.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_b (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOOLEAN (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_b: Handler for the #OrgProjectSignalingIface::single-arg-signal-b signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-b:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_b: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalB">"SingleArgSignalB"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_B] =
#     g_signal_new ("single-arg-signal-b",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_b),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_b,
#       G_TYPE_NONE,
#       1, G_TYPE_BOOLEAN);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_b:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_b: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalB">"SingleArgSignalB"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_b (
#     OrgProjectSignalingIface *object,
#     gboolean arg_arg_b)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_B], 0, arg_arg_b);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_b (
#     OrgProjectSignalingIface *object,
#     gboolean arg_arg_b)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(b)",
#                    arg_arg_b));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalB",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_b = _org_project_signaling_iface_on_signal_single_arg_signal_b;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpp2tnttb2.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalY">
#                     <arg name="arg_y" type="y"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpp2tnttb2.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Y,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_arg_y =
# {
#   {
#     -1,
#     (gchar *) "arg_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_arg_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_y =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalY",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_y_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-y"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_y.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_y (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__UCHAR (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_y: Handler for the #OrgProjectSignalingIface::single-arg-signal-y signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-y:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_y: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalY">"SingleArgSignalY"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Y] =
#     g_signal_new ("single-arg-signal-y",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_y),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_y,
#       G_TYPE_NONE,
#       1, G_TYPE_UCHAR);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_y:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_y: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalY">"SingleArgSignalY"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_y (
#     OrgProjectSignalingIface *object,
#     guchar arg_arg_y)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Y], 0, arg_arg_y);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_y (
#     OrgProjectSignalingIface *object,
#     guchar arg_arg_y)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(y)",
#                    arg_arg_y));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalY",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_y = _org_project_signaling_iface_on_signal_single_arg_signal_y;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpifbxd2v0.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalN">
#                     <arg name="arg_n" type="n"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpifbxd2v0.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_N,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_arg_n =
# {
#   {
#     -1,
#     (gchar *) "arg_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_arg_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_n =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalN",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_n_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-n"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_n.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_n (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__INT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_n: Handler for the #OrgProjectSignalingIface::single-arg-signal-n signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-n:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_n: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalN">"SingleArgSignalN"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_N] =
#     g_signal_new ("single-arg-signal-n",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_n),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_n,
#       G_TYPE_NONE,
#       1, G_TYPE_INT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_n:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_n: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalN">"SingleArgSignalN"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_n (
#     OrgProjectSignalingIface *object,
#     gint16 arg_arg_n)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_N], 0, arg_arg_n);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_n (
#     OrgProjectSignalingIface *object,
#     gint16 arg_arg_n)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(n)",
#                    arg_arg_n));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalN",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_n = _org_project_signaling_iface_on_signal_single_arg_signal_n;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp3297q3zw.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalQ">
#                     <arg name="arg_q" type="q"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp3297q3zw.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Q,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_arg_q =
# {
#   {
#     -1,
#     (gchar *) "arg_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_arg_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_q =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalQ",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_q_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-q"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_q.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_q (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__UINT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_q: Handler for the #OrgProjectSignalingIface::single-arg-signal-q signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-q:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_q: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalQ">"SingleArgSignalQ"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Q] =
#     g_signal_new ("single-arg-signal-q",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_q),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_q,
#       G_TYPE_NONE,
#       1, G_TYPE_UINT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_q:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_q: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalQ">"SingleArgSignalQ"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_q (
#     OrgProjectSignalingIface *object,
#     guint16 arg_arg_q)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_Q], 0, arg_arg_q);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_q (
#     OrgProjectSignalingIface *object,
#     guint16 arg_arg_q)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(q)",
#                    arg_arg_q));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalQ",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_q = _org_project_signaling_iface_on_signal_single_arg_signal_q;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp_qnni9bf.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalI">
#                     <arg name="arg_i" type="i"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp_qnni9bf.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_I,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_arg_i =
# {
#   {
#     -1,
#     (gchar *) "arg_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_arg_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_i =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalI",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_i_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-i"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_i.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_i (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__INT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_i: Handler for the #OrgProjectSignalingIface::single-arg-signal-i signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-i:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_i: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalI">"SingleArgSignalI"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_I] =
#     g_signal_new ("single-arg-signal-i",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_i),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_i,
#       G_TYPE_NONE,
#       1, G_TYPE_INT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_i:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_i: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalI">"SingleArgSignalI"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_i (
#     OrgProjectSignalingIface *object,
#     gint arg_arg_i)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_I], 0, arg_arg_i);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_i (
#     OrgProjectSignalingIface *object,
#     gint arg_arg_i)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(i)",
#                    arg_arg_i));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalI",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_i = _org_project_signaling_iface_on_signal_single_arg_signal_i;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp1sl3u0sq.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalU">
#                     <arg name="arg_u" type="u"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp1sl3u0sq.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_U,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_arg_u =
# {
#   {
#     -1,
#     (gchar *) "arg_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_arg_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_u =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalU",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_u_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-u"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_u.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_u (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__UINT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_u: Handler for the #OrgProjectSignalingIface::single-arg-signal-u signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-u:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_u: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalU">"SingleArgSignalU"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_U] =
#     g_signal_new ("single-arg-signal-u",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_u),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_u,
#       G_TYPE_NONE,
#       1, G_TYPE_UINT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_u:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_u: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalU">"SingleArgSignalU"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_u (
#     OrgProjectSignalingIface *object,
#     guint arg_arg_u)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_U], 0, arg_arg_u);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_u (
#     OrgProjectSignalingIface *object,
#     guint arg_arg_u)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(u)",
#                    arg_arg_u));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalU",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_u = _org_project_signaling_iface_on_signal_single_arg_signal_u;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpa_19hbzk.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalX">
#                     <arg name="arg_x" type="x"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpa_19hbzk.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_VOID__INT64 (
#     GClosure     *closure,
#     GValue       *return_value G_GNUC_UNUSED,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef void (*_GDbusCodegenMarshalVoid_Int64Func)
#        (void *data1,
#         gint64 arg_arg_x,
#         void *data2);
#   _GDbusCodegenMarshalVoid_Int64Func callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalVoid_Int64Func)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_int64 (param_values + 1),
#             data2);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_X,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_arg_x =
# {
#   {
#     -1,
#     (gchar *) "arg_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_arg_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_x =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalX",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_x_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-x"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_x.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_x (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_VOID__INT64 (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_x: Handler for the #OrgProjectSignalingIface::single-arg-signal-x signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-x:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_x: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalX">"SingleArgSignalX"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_X] =
#     g_signal_new ("single-arg-signal-x",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_x),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_x,
#       G_TYPE_NONE,
#       1, G_TYPE_INT64);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_x:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_x: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalX">"SingleArgSignalX"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_x (
#     OrgProjectSignalingIface *object,
#     gint64 arg_arg_x)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_X], 0, arg_arg_x);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_x (
#     OrgProjectSignalingIface *object,
#     gint64 arg_arg_x)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(x)",
#                    arg_arg_x));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalX",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_x = _org_project_signaling_iface_on_signal_single_arg_signal_x;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp06k6khts.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalT">
#                     <arg name="arg_t" type="t"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp06k6khts.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_VOID__UINT64 (
#     GClosure     *closure,
#     GValue       *return_value G_GNUC_UNUSED,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef void (*_GDbusCodegenMarshalVoid_Uint64Func)
#        (void *data1,
#         guint64 arg_arg_t,
#         void *data2);
#   _GDbusCodegenMarshalVoid_Uint64Func callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
# 
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalVoid_Uint64Func)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_uint64 (param_values + 1),
#             data2);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_T,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_arg_t =
# {
#   {
#     -1,
#     (gchar *) "arg_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_arg_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_t =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalT",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_t_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-t"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_t.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_t (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_VOID__UINT64 (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_t: Handler for the #OrgProjectSignalingIface::single-arg-signal-t signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-t:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_t: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalT">"SingleArgSignalT"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_T] =
#     g_signal_new ("single-arg-signal-t",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_t),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_t,
#       G_TYPE_NONE,
#       1, G_TYPE_UINT64);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_t:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_t: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalT">"SingleArgSignalT"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_t (
#     OrgProjectSignalingIface *object,
#     guint64 arg_arg_t)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_T], 0, arg_arg_t);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_t (
#     OrgProjectSignalingIface *object,
#     guint64 arg_arg_t)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(t)",
#                    arg_arg_t));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalT",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_t = _org_project_signaling_iface_on_signal_single_arg_signal_t;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp47tmbeey.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalD">
#                     <arg name="arg_d" type="d"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp47tmbeey.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_D,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_arg_d =
# {
#   {
#     -1,
#     (gchar *) "arg_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_arg_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_d =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalD",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_d_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-d"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_d.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_d (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__DOUBLE (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_d: Handler for the #OrgProjectSignalingIface::single-arg-signal-d signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-d:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_d: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalD">"SingleArgSignalD"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_D] =
#     g_signal_new ("single-arg-signal-d",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_d),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_d,
#       G_TYPE_NONE,
#       1, G_TYPE_DOUBLE);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_d:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_d: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalD">"SingleArgSignalD"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_d (
#     OrgProjectSignalingIface *object,
#     gdouble arg_arg_d)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_D], 0, arg_arg_d);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_d (
#     OrgProjectSignalingIface *object,
#     gdouble arg_arg_d)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(d)",
#                    arg_arg_d));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalD",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_d = _org_project_signaling_iface_on_signal_single_arg_signal_d;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp4lieqjrd.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalS">
#                     <arg name="arg_s" type="s"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp4lieqjrd.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_S,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_arg_s =
# {
#   {
#     -1,
#     (gchar *) "arg_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_arg_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_s =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalS",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_s_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-s"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_s.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_s (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_s: Handler for the #OrgProjectSignalingIface::single-arg-signal-s signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-s:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_s: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalS">"SingleArgSignalS"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_S] =
#     g_signal_new ("single-arg-signal-s",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_s),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_s,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_s:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_s: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalS">"SingleArgSignalS"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_s (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_s)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_S], 0, arg_arg_s);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_s (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_s)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(s)",
#                    arg_arg_s));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalS",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_s = _org_project_signaling_iface_on_signal_single_arg_signal_s;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpcanjqarb.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalO">
#                     <arg name="arg_o" type="o"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpcanjqarb.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_O,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_arg_o =
# {
#   {
#     -1,
#     (gchar *) "arg_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_arg_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_o =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalO",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_o_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-o"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_o.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_o (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_o: Handler for the #OrgProjectSignalingIface::single-arg-signal-o signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-o:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_o: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalO">"SingleArgSignalO"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_O] =
#     g_signal_new ("single-arg-signal-o",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_o),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_o,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_o:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_o: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalO">"SingleArgSignalO"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_o (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_o)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_O], 0, arg_arg_o);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_o (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_o)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(o)",
#                    arg_arg_o));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalO",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_o = _org_project_signaling_iface_on_signal_single_arg_signal_o;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp506qadcl.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalG">
#                     <arg name="arg_g" type="g"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp506qadcl.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_G,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_arg_g =
# {
#   {
#     -1,
#     (gchar *) "arg_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_arg_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_g =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalG",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_g_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-g"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_g.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_g (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_g: Handler for the #OrgProjectSignalingIface::single-arg-signal-g signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-g:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_g: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalG">"SingleArgSignalG"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_G] =
#     g_signal_new ("single-arg-signal-g",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_g),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_g,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_g:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_g: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalG">"SingleArgSignalG"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_g (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_g)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_G], 0, arg_arg_g);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_g (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_g)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(g)",
#                    arg_arg_g));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalG",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_g = _org_project_signaling_iface_on_signal_single_arg_signal_g;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpyonceeiq.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalH">
#                     <arg name="arg_h" type="h"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpyonceeiq.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_H,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_arg_h =
# {
#   {
#     -1,
#     (gchar *) "arg_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_arg_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_h =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalH",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_h_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-h"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_h.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_h (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_h: Handler for the #OrgProjectSignalingIface::single-arg-signal-h signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-h:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_h: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalH">"SingleArgSignalH"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_H] =
#     g_signal_new ("single-arg-signal-h",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_h),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_h,
#       G_TYPE_NONE,
#       1, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_h:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_h: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalH">"SingleArgSignalH"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_h (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_arg_h)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_H], 0, arg_arg_h);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_h (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_arg_h)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(@h)",
#                    arg_arg_h));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalH",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_h = _org_project_signaling_iface_on_signal_single_arg_signal_h;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpprhnyut5.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalAy">
#                     <arg name="arg_ay" type="ay"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpprhnyut5.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AY,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_arg_ay =
# {
#   {
#     -1,
#     (gchar *) "arg_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_arg_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_ay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAy",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_ay_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-ay"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_ay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__STRING (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_ay: Handler for the #OrgProjectSignalingIface::single-arg-signal-ay signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-ay:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_ay: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAy">"SingleArgSignalAy"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AY] =
#     g_signal_new ("single-arg-signal-ay",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_ay),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_ay,
#       G_TYPE_NONE,
#       1, G_TYPE_STRING);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_ay:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_ay: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAy">"SingleArgSignalAy"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_ay (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_ay)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AY], 0, arg_arg_ay);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_ay (
#     OrgProjectSignalingIface *object,
#     const gchar *arg_arg_ay)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^ay)",
#                    arg_arg_ay));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAy",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_ay = _org_project_signaling_iface_on_signal_single_arg_signal_ay;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpt2q5mxn7.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalAs">
#                     <arg name="arg_as" type="as"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpt2q5mxn7.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AS,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_arg_as =
# {
#   {
#     -1,
#     (gchar *) "arg_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_arg_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_as =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAs",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_as_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-as"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_as.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_as (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_as: Handler for the #OrgProjectSignalingIface::single-arg-signal-as signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-as:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_as: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAs">"SingleArgSignalAs"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AS] =
#     g_signal_new ("single-arg-signal-as",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_as),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_as,
#       G_TYPE_NONE,
#       1, G_TYPE_STRV);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_as:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_as: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAs">"SingleArgSignalAs"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_as (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_arg_as)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AS], 0, arg_arg_as);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_as (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_arg_as)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^as)",
#                    arg_arg_as));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAs",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_as = _org_project_signaling_iface_on_signal_single_arg_signal_as;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpmrtkl9r3.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalAo">
#                     <arg name="arg_ao" type="ao"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpmrtkl9r3.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AO,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_arg_ao =
# {
#   {
#     -1,
#     (gchar *) "arg_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_arg_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_ao =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAo",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_ao_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-ao"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_ao.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_ao (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_ao: Handler for the #OrgProjectSignalingIface::single-arg-signal-ao signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-ao:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_ao: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAo">"SingleArgSignalAo"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AO] =
#     g_signal_new ("single-arg-signal-ao",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_ao),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_ao,
#       G_TYPE_NONE,
#       1, G_TYPE_STRV);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_ao:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_ao: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAo">"SingleArgSignalAo"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_ao (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_arg_ao)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AO], 0, arg_arg_ao);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_ao (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_arg_ao)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^ao)",
#                    arg_arg_ao));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAo",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_ao = _org_project_signaling_iface_on_signal_single_arg_signal_ao;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmp9zbpti2_.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalAay">
#                     <arg name="arg_aay" type="aay"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmp9zbpti2_.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AAY,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_arg_aay =
# {
#   {
#     -1,
#     (gchar *) "arg_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_arg_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_aay =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAay",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_aay_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-aay"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_aay.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_aay (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__BOXED (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_aay: Handler for the #OrgProjectSignalingIface::single-arg-signal-aay signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-aay:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_aay: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAay">"SingleArgSignalAay"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AAY] =
#     g_signal_new ("single-arg-signal-aay",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_aay),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_aay,
#       G_TYPE_NONE,
#       1, G_TYPE_STRV);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_aay:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_aay: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAay">"SingleArgSignalAay"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_aay (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_arg_aay)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_AAY], 0, arg_arg_aay);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_aay (
#     OrgProjectSignalingIface *object,
#     const gchar *const *arg_arg_aay)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(^aay)",
#                    arg_arg_aay));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAay",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_aay = _org_project_signaling_iface_on_signal_single_arg_signal_aay;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
#  
# /tmp/tmpeh8wmyg4/tmpr32fu2v9.xml: 
#             <node>
#             <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SingleArgSignalAsv">
#                     <arg name="arg_asv" type="a{sv}"/>
#                 </signal>
#             </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeh8wmyg4/tmpr32fu2v9.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_ASV,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_arg_asv =
# {
#   {
#     -1,
#     (gchar *) "arg_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_arg_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_single_arg_signal_asv =
# {
#   {
#     -1,
#     (gchar *) "SingleArgSignalAsv",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_single_arg_signal_asv_ARG_pointers,
#     NULL
#   },
#   "single-arg-signal-asv"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_single_arg_signal_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_single_arg_signal_asv (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  * @single_arg_signal_asv: Handler for the #OrgProjectSignalingIface::single-arg-signal-asv signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::single-arg-signal-asv:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_arg_asv: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAsv">"SingleArgSignalAsv"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_ASV] =
#     g_signal_new ("single-arg-signal-asv",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, single_arg_signal_asv),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_single_arg_signal_asv,
#       G_TYPE_NONE,
#       1, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_single_arg_signal_asv:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_arg_asv: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SingleArgSignalAsv">"SingleArgSignalAsv"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_single_arg_signal_asv (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_arg_asv)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SINGLE_ARG_SIGNAL_ASV], 0, arg_arg_asv);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_single_arg_signal_asv (
#     OrgProjectSignalingIface *object,
#     GVariant *arg_arg_asv)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(@a{sv})",
#                    arg_arg_asv));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SingleArgSignalAsv",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->single_arg_signal_asv = _org_project_signaling_iface_on_signal_single_arg_signal_asv;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
ok 24 __main__.TestCodegen.test_generate_signals_marshallers_multiple_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp950324gt
# /tmp/tmp950324gt/tmpl4gr_2yu.xml: 
#             <node>
#               <interface name="org.project.SignalingIface">
#                 <signal name="SimpleSignal"/>
#                 <signal name="SignalWithManyArgs">
#                     <arg name='an_b' type='b'/>
# <arg name='an_y' type='y'/>
# <arg name='an_n' type='n'/>
# <arg name='an_q' type='q'/>
# <arg name='an_i' type='i'/>
# <arg name='an_u' type='u'/>
# <arg name='an_x' type='x'/>
# <arg name='an_t' type='t'/>
# <arg name='an_d' type='d'/>
# <arg name='an_s' type='s'/>
# <arg name='an_o' type='o'/>
# <arg name='an_g' type='g'/>
# <arg name='an_h' type='h'/>
# <arg name='an_ay' type='ay'/>
# <arg name='an_as' type='as'/>
# <arg name='an_ao' type='ao'/>
# <arg name='an_aay' type='aay'/>
# <arg name='an_asv' type='a{sv}'/>
# 
#                 </signal>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp950324gt/tmpl4gr_2yu.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_VOID__BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (
#     GClosure     *closure,
#     GValue       *return_value G_GNUC_UNUSED,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef void (*_GDbusCodegenMarshalVoid_BooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc)
#        (void *data1,
#         gboolean arg_an_b,
#         guchar arg_an_y,
#         gint16 arg_an_n,
#         guint16 arg_an_q,
#         gint arg_an_i,
#         guint arg_an_u,
#         gint64 arg_an_x,
#         guint64 arg_an_t,
#         gdouble arg_an_d,
#         const gchar *arg_an_s,
#         const gchar *arg_an_o,
#         const gchar *arg_an_g,
#         GVariant *arg_an_h,
#         const gchar *arg_an_ay,
#         const gchar *const *arg_an_as,
#         const gchar *const *arg_an_ao,
#         const gchar *const *arg_an_aay,
#         GVariant *arg_an_asv,
#         void *data2);
#   _GDbusCodegenMarshalVoid_BooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
# 
#   g_return_if_fail (n_param_values == 19);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalVoid_BooleanUcharIntUintIntUintInt64Uint64DoubleStringStringStringVariantStringBoxedBoxedBoxedVariantFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   callback (data1,
#             g_marshal_value_peek_boolean (param_values + 1),
#             g_marshal_value_peek_uchar (param_values + 2),
#             g_marshal_value_peek_int (param_values + 3),
#             g_marshal_value_peek_uint (param_values + 4),
#             g_marshal_value_peek_int (param_values + 5),
#             g_marshal_value_peek_uint (param_values + 6),
#             g_marshal_value_peek_int64 (param_values + 7),
#             g_marshal_value_peek_uint64 (param_values + 8),
#             g_marshal_value_peek_double (param_values + 9),
#             g_marshal_value_peek_string (param_values + 10),
#             g_marshal_value_peek_string (param_values + 11),
#             g_marshal_value_peek_string (param_values + 12),
#             g_marshal_value_peek_variant (param_values + 13),
#             g_marshal_value_peek_string (param_values + 14),
#             g_marshal_value_peek_boxed (param_values + 15),
#             g_marshal_value_peek_boxed (param_values + 16),
#             g_marshal_value_peek_boxed (param_values + 17),
#             g_marshal_value_peek_variant (param_values + 18),
#             data2);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.SignalingIface
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectSignalingIface
#  * @title: OrgProjectSignalingIface
#  * @short_description: Generated C code for the org.project.SignalingIface D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL,
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNAL_WITH_MANY_ARGS,
# };
# 
# static unsigned _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[2] = { 0 };
# 
# /* ---- Introspection data for org.project.SignalingIface ---- */
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_simple_signal =
# {
#   {
#     -1,
#     (gchar *) "SimpleSignal",
#     NULL,
#     NULL
#   },
#   "simple-signal"
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_b =
# {
#   {
#     -1,
#     (gchar *) "an_b",
#     (gchar *) "b",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_y =
# {
#   {
#     -1,
#     (gchar *) "an_y",
#     (gchar *) "y",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_n =
# {
#   {
#     -1,
#     (gchar *) "an_n",
#     (gchar *) "n",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_q =
# {
#   {
#     -1,
#     (gchar *) "an_q",
#     (gchar *) "q",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_i =
# {
#   {
#     -1,
#     (gchar *) "an_i",
#     (gchar *) "i",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_u =
# {
#   {
#     -1,
#     (gchar *) "an_u",
#     (gchar *) "u",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_x =
# {
#   {
#     -1,
#     (gchar *) "an_x",
#     (gchar *) "x",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_t =
# {
#   {
#     -1,
#     (gchar *) "an_t",
#     (gchar *) "t",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_d =
# {
#   {
#     -1,
#     (gchar *) "an_d",
#     (gchar *) "d",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_s =
# {
#   {
#     -1,
#     (gchar *) "an_s",
#     (gchar *) "s",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_o =
# {
#   {
#     -1,
#     (gchar *) "an_o",
#     (gchar *) "o",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_g =
# {
#   {
#     -1,
#     (gchar *) "an_g",
#     (gchar *) "g",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_h =
# {
#   {
#     -1,
#     (gchar *) "an_h",
#     (gchar *) "h",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ay =
# {
#   {
#     -1,
#     (gchar *) "an_ay",
#     (gchar *) "ay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_as =
# {
#   {
#     -1,
#     (gchar *) "an_as",
#     (gchar *) "as",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ao =
# {
#   {
#     -1,
#     (gchar *) "an_ao",
#     (gchar *) "ao",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_aay =
# {
#   {
#     -1,
#     (gchar *) "an_aay",
#     (gchar *) "aay",
#     NULL
#   },
#   FALSE
# };
# 
# static const _ExtendedGDBusArgInfo _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_asv =
# {
#   {
#     -1,
#     (gchar *) "an_asv",
#     (gchar *) "a{sv}",
#     NULL
#   },
#   FALSE
# };
# 
# static const GDBusArgInfo * const _org_project_signaling_iface_signal_info_signal_with_many_args_ARG_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_b.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_y.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_n.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_q.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_i.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_u.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_x.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_t.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_d.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_s.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_o.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_g.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_h.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ay.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_as.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_ao.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_aay.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_an_asv.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _org_project_signaling_iface_signal_info_signal_with_many_args =
# {
#   {
#     -1,
#     (gchar *) "SignalWithManyArgs",
#     (GDBusArgInfo **) &_org_project_signaling_iface_signal_info_signal_with_many_args_ARG_pointers,
#     NULL
#   },
#   "signal-with-many-args"
# };
# 
# static const GDBusSignalInfo * const _org_project_signaling_iface_signal_info_pointers[] =
# {
#   &_org_project_signaling_iface_signal_info_simple_signal.parent_struct,
#   &_org_project_signaling_iface_signal_info_signal_with_many_args.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_signaling_iface_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.SignalingIface",
#     NULL,
#     (GDBusSignalInfo **) &_org_project_signaling_iface_signal_info_pointers,
#     NULL,
#     NULL
#   },
#   "org-project-signaling-iface",
# };
# 
# 
# /**
#  * org_project_signaling_iface_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_signaling_iface_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_signaling_iface_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectSignalingIface interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_signaling_iface_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_signaling_iface_signal_marshal_simple_signal (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# org_project_signaling_iface_signal_marshal_signal_with_many_args (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_VOID__BOOLEAN_UCHAR_INT_UINT_INT_UINT_INT64_UINT64_DOUBLE_STRING_STRING_STRING_VARIANT_STRING_BOXED_BOXED_BOXED_VARIANT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectSignalingIface:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceIface:
#  * @parent_iface: The parent interface.
#  * @signal_with_many_args: Handler for the #OrgProjectSignalingIface::signal-with-many-args signal.
#  * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  */
# 
# typedef OrgProjectSignalingIfaceIface OrgProjectSignalingIfaceInterface;
# G_DEFINE_INTERFACE (OrgProjectSignalingIface, org_project_signaling_iface, G_TYPE_OBJECT)
# 
# static void
# org_project_signaling_iface_default_init (OrgProjectSignalingIfaceIface *iface)
# {
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * OrgProjectSignalingIface::simple-signal:
#    * @object: A #OrgProjectSignalingIface.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL] =
#     g_signal_new ("simple-signal",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, simple_signal),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_simple_signal,
#       G_TYPE_NONE,
#       0);
# 
#   /**
#    * OrgProjectSignalingIface::signal-with-many-args:
#    * @object: A #OrgProjectSignalingIface.
#    * @arg_an_b: Argument.
#    * @arg_an_y: Argument.
#    * @arg_an_n: Argument.
#    * @arg_an_q: Argument.
#    * @arg_an_i: Argument.
#    * @arg_an_u: Argument.
#    * @arg_an_x: Argument.
#    * @arg_an_t: Argument.
#    * @arg_an_d: Argument.
#    * @arg_an_s: Argument.
#    * @arg_an_o: Argument.
#    * @arg_an_g: Argument.
#    * @arg_an_h: Argument.
#    * @arg_an_ay: Argument.
#    * @arg_an_as: Argument.
#    * @arg_an_ao: Argument.
#    * @arg_an_aay: Argument.
#    * @arg_an_asv: Argument.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-project-SignalingIface.SignalWithManyArgs">"SignalWithManyArgs"</link> is received.
#    *
#    * 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.
#    */
#   _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIGNAL_WITH_MANY_ARGS] =
#     g_signal_new ("signal-with-many-args",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (OrgProjectSignalingIfaceIface, signal_with_many_args),
#       NULL,
#       NULL,
#       org_project_signaling_iface_signal_marshal_signal_with_many_args,
#       G_TYPE_NONE,
#       18, G_TYPE_BOOLEAN, G_TYPE_UCHAR, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT64, G_TYPE_UINT64, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_VARIANT);
# 
# }
# 
# /**
#  * org_project_signaling_iface_emit_simple_signal:
#  * @object: A #OrgProjectSignalingIface.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SimpleSignal">"SimpleSignal"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIMPLE_SIGNAL], 0);
# }
# 
# /**
#  * org_project_signaling_iface_emit_signal_with_many_args:
#  * @object: A #OrgProjectSignalingIface.
#  * @arg_an_b: Argument to pass with the signal.
#  * @arg_an_y: Argument to pass with the signal.
#  * @arg_an_n: Argument to pass with the signal.
#  * @arg_an_q: Argument to pass with the signal.
#  * @arg_an_i: Argument to pass with the signal.
#  * @arg_an_u: Argument to pass with the signal.
#  * @arg_an_x: Argument to pass with the signal.
#  * @arg_an_t: Argument to pass with the signal.
#  * @arg_an_d: Argument to pass with the signal.
#  * @arg_an_s: Argument to pass with the signal.
#  * @arg_an_o: Argument to pass with the signal.
#  * @arg_an_g: Argument to pass with the signal.
#  * @arg_an_h: Argument to pass with the signal.
#  * @arg_an_ay: Argument to pass with the signal.
#  * @arg_an_as: Argument to pass with the signal.
#  * @arg_an_ao: Argument to pass with the signal.
#  * @arg_an_aay: Argument to pass with the signal.
#  * @arg_an_asv: Argument to pass with the signal.
#  *
#  * Emits the <link linkend="gdbus-signal-org-project-SignalingIface.SignalWithManyArgs">"SignalWithManyArgs"</link> D-Bus signal.
#  */
# void
# org_project_signaling_iface_emit_signal_with_many_args (
#     OrgProjectSignalingIface *object,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv)
# {
#   g_signal_emit (object, _ORG_PROJECT_SIGNALING_IFACE_SIGNALS[_ORG_PROJECT_SIGNALING_IFACE_SIGNAL_WITH_MANY_ARGS], 0, arg_an_b, arg_an_y, arg_an_n, arg_an_q, arg_an_i, arg_an_u, arg_an_x, arg_an_t, arg_an_d, arg_an_s, arg_an_o, arg_an_g, arg_an_h, arg_an_ay, arg_an_as, arg_an_ao, arg_an_aay, arg_an_asv);
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceProxy:
#  *
#  * The #OrgProjectSignalingIfaceProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceProxy.
#  */
# 
# struct _OrgProjectSignalingIfaceProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceProxy, org_project_signaling_iface_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_proxy_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_proxy_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_signaling_iface_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_signaling_iface_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_signaling_iface_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectSignalingIfaceProxy *proxy = ORG_PROJECT_SIGNALING_IFACE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_signaling_iface_proxy_init (OrgProjectSignalingIfaceProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_signaling_iface_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, OrgProjectSignalingIfaceProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_signaling_iface_interface_info ());
# }
# 
# static void
# org_project_signaling_iface_proxy_class_init (OrgProjectSignalingIfaceProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_signaling_iface_proxy_finalize;
#   gobject_class->get_property = org_project_signaling_iface_proxy_get_property;
#   gobject_class->set_property = org_project_signaling_iface_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_signaling_iface_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_signaling_iface_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceProxyPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_proxy_iface_init (OrgProjectSignalingIfaceIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_signaling_iface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_signaling_iface_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_signaling_iface_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_SIGNALING_IFACE_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.project.SignalingIface", NULL);
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_signaling_iface_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_signaling_iface_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_signaling_iface_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_signaling_iface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_signaling_iface_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.SignalingIface", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_SIGNALING_IFACE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectSignalingIfaceSkeleton:
#  *
#  * The #OrgProjectSignalingIfaceSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectSignalingIfaceSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectSignalingIfaceSkeleton.
#  */
# 
# struct _OrgProjectSignalingIfaceSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_signaling_iface_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_SIGNALING_IFACE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_signaling_iface_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_signaling_iface_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_signaling_iface_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_signaling_iface_skeleton_vtable =
# {
#   _org_project_signaling_iface_skeleton_handle_method_call,
#   _org_project_signaling_iface_skeleton_handle_get_property,
#   _org_project_signaling_iface_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_signaling_iface_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_signaling_iface_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_signaling_iface_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_signaling_iface_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_signaling_iface_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_signaling_iface_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_signaling_iface_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_signaling_iface_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_signaling_iface_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.project.SignalingIface", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_signaling_iface_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void
# _org_project_signaling_iface_on_signal_simple_signal (
#     OrgProjectSignalingIface *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SimpleSignal",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void
# _org_project_signaling_iface_on_signal_signal_with_many_args (
#     OrgProjectSignalingIface *object,
#     gboolean arg_an_b,
#     guchar arg_an_y,
#     gint16 arg_an_n,
#     guint16 arg_an_q,
#     gint arg_an_i,
#     guint arg_an_u,
#     gint64 arg_an_x,
#     guint64 arg_an_t,
#     gdouble arg_an_d,
#     const gchar *arg_an_s,
#     const gchar *arg_an_o,
#     const gchar *arg_an_g,
#     GVariant *arg_an_h,
#     const gchar *arg_an_ay,
#     const gchar *const *arg_an_as,
#     const gchar *const *arg_an_ao,
#     const gchar *const *arg_an_aay,
#     GVariant *arg_an_asv)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("(bynqiuxtdsog@h^ay^as^ao^aay@a{sv})",
#                    arg_an_b,
#                    arg_an_y,
#                    arg_an_n,
#                    arg_an_q,
#                    arg_an_i,
#                    arg_an_u,
#                    arg_an_x,
#                    arg_an_t,
#                    arg_an_d,
#                    arg_an_s,
#                    arg_an_o,
#                    arg_an_g,
#                    arg_an_h,
#                    arg_an_ay,
#                    arg_an_as,
#                    arg_an_ao,
#                    arg_an_aay,
#                    arg_an_asv));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.project.SignalingIface", "SignalWithManyArgs",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectSignalingIfaceSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectSignalingIfaceSkeleton, org_project_signaling_iface_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_SIGNALING_IFACE, org_project_signaling_iface_skeleton_iface_init))
# 
# #endif
# static void
# org_project_signaling_iface_skeleton_finalize (GObject *object)
# {
#   OrgProjectSignalingIfaceSkeleton *skeleton = ORG_PROJECT_SIGNALING_IFACE_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_signaling_iface_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_signaling_iface_skeleton_init (OrgProjectSignalingIfaceSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_signaling_iface_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, OrgProjectSignalingIfaceSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_signaling_iface_skeleton_class_init (OrgProjectSignalingIfaceSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_signaling_iface_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_signaling_iface_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_signaling_iface_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_signaling_iface_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_signaling_iface_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectSignalingIfaceSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_signaling_iface_skeleton_iface_init (OrgProjectSignalingIfaceIface *iface)
# {
#   iface->simple_signal = _org_project_signaling_iface_on_signal_simple_signal;
#   iface->signal_with_many_args = _org_project_signaling_iface_on_signal_signal_with_many_args;
# }
# 
# /**
#  * org_project_signaling_iface_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-SignalingIface.top_of_page">org.project.SignalingIface</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectSignalingIfaceSkeleton): The skeleton object.
#  */
# OrgProjectSignalingIface *
# org_project_signaling_iface_skeleton_new (void)
# {
#   return ORG_PROJECT_SIGNALING_IFACE (g_object_new (TYPE_ORG_PROJECT_SIGNALING_IFACE_SKELETON, NULL));
# }
# Error:
ok 25 __main__.TestCodegen.test_generate_valid_docbook
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmp1gqonq2o
# /tmp/tmp1gqonq2o/tmpxjmvl69o.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- Resize:
#                  @size: New partition size in bytes, 0 for maximal size.
#                  @options: Options.
#                  @since 2.7.2
# 
#                  Resizes the partition.
# 
#                  The partition will not change its position but might be slightly bigger
#                  than requested due to sector counts and alignment (e.g. 1MiB).
#                  If the requested size can't be allocated it results in an error.
#                  The maximal size can automatically be set by using 0 as size.
#             -->
#             <method name="Resize">
#               <arg name="size" direction="in" type="t"/>
#               <arg name="options" direction="in" type="a{sv}"/>
#             </method>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp1gqonq2o/tmpxjmvl69o.xml', '--generate-docbook', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 26 __main__.TestCodegen.test_glib_max_allowed_less_than_min_required
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpylroahtb
# /tmp/tmpylroahtb/tmpz56vq52b.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpylroahtb/tmpz56vq52b.xml', '--output', '-', '--body', '--glib-max-allowed', '2.62', '--glib-min-required', '2.64']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Invalid versions: --glib-min-required ((2, 64)) must be less than or equal to --glib-max-allowed ((2, 62))
ok 27 __main__.TestCodegen.test_glib_max_allowed_major_only
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpzy673tmt
# /tmp/tmpzy673tmt/tmp_nhh3vx2.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpzy673tmt/tmp_nhh3vx2.xml', '--output', '-', '--header', '--glib-max-allowed', '3']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 28 __main__.TestCodegen.test_glib_max_allowed_too_low
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmph0qeco46
# /tmp/tmph0qeco46/tmptohiw8ej.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmph0qeco46/tmptohiw8ej.xml', '--output', '-', '--body', '--glib-max-allowed', '2.6']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Invalid versions: --glib-min-required ((2, 30)) must be less than or equal to --glib-max-allowed ((2, 6))
ok 29 __main__.TestCodegen.test_glib_max_allowed_unstable
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpat6gjyjj
# /tmp/tmpat6gjyjj/tmp15b0y06x.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpat6gjyjj/tmp15b0y06x.xml', '--output', '-', '--header', '--glib-max-allowed', '2.63', '--glib-min-required', '2.64']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 30 __main__.TestCodegen.test_glib_max_allowed_with_micro
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpkxsov8dp
# /tmp/tmpkxsov8dp/tmpo28fbeia.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpkxsov8dp/tmpo28fbeia.xml', '--output', '-', '--header', '--glib-max-allowed', '2.46.2']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 31 __main__.TestCodegen.test_glib_min_required_invalid
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpqf1p15zc
# /tmp/tmpqf1p15zc/tmpfjrh8j6u.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpqf1p15zc/tmpfjrh8j6u.xml', '--output', '-', '--body', '--glib-min-required', 'hello mum']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Unrecognized --glib-min-required string ‘hello mum’
ok 32 __main__.TestCodegen.test_glib_min_required_major_only
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpyc5z_6g2
# /tmp/tmpyc5z_6g2/tmp8bueuwyl.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpyc5z_6g2/tmp8bueuwyl.xml', '--output', '-', '--header', '--glib-min-required', '3', '--glib-max-allowed', '3.2']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 33 __main__.TestCodegen.test_glib_min_required_too_low
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmph8z92jq_
# /tmp/tmph8z92jq_/tmp3cw9hybv.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmph8z92jq_/tmp3cw9hybv.xml', '--output', '-', '--body', '--glib-min-required', '2.6']
# Return code: 1
# Output:
#  
# Error:
#  ERROR: Invalid --glib-min-required string ‘2.6’: minimum version is 2.30
ok 34 __main__.TestCodegen.test_glib_min_required_with_micro
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpk1j53ula
# /tmp/tmpk1j53ula/tmpzrjm95wl.xml: 
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpk1j53ula/tmpzrjm95wl.xml', '--output', '-', '--header', '--glib-min-required', '2.46.2']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
ok 35 __main__.TestCodegen.test_help
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpe7yq83y2
# Running: ['/usr/bin/gdbus-codegen', '--help']
# Return code: 0
# Output:
#  usage: gdbus-codegen [-h] [--interface-prefix PREFIX]
#                      [--c-namespace NAMESPACE] [--c-generate-object-manager]
#                      [--c-generate-autocleanup {none,objects,all}]
#                      [--generate-docbook OUTFILES] [--generate-md OUTFILES]
#                      [--generate-rst OUTFILES] [--pragma-once]
#                      [--annotate WHAT KEY VALUE WHAT KEY VALUE WHAT KEY VALUE]
#                      [--glib-min-required VERSION]
#                      [--glib-max-allowed VERSION]
#                      [--symbol-decorator SYMBOL_DECORATOR]
#                      [--symbol-decorator-header SYMBOL_DECORATOR_HEADER]
#                      [--symbol-decorator-define SYMBOL_DECORATOR_DEFINE]
#                      [--generate-c-code OUTFILES | --header | --body |
#                      --interface-info-header | --interface-info-body]
#                      [--output FILE | --output-directory OUTDIR]
#                      FILE [FILE ...]
# 
# D-Bus code and documentation generator
# 
# positional arguments:
#   FILE                  D-Bus introspection XML file
# 
# options:
#   -h, --help            show this help message and exit
#   --interface-prefix PREFIX
#                         String to strip from D-Bus interface names for code
#                         and docs
#   --c-namespace NAMESPACE
#                         The namespace to use for generated C code
#   --c-generate-object-manager
#                         Generate a GDBusObjectManagerClient subclass when
#                         generating C code
#   --c-generate-autocleanup {none,objects,all}
#                         Generate autocleanup support
#   --generate-docbook OUTFILES
#                         Generate Docbook in OUTFILES-org.Project.IFace.xml
#   --generate-md OUTFILES
#                         Generate Markdown in OUTFILES-org.Project.IFace.md
#   --generate-rst OUTFILES
#                         Generate reStructuredText in OUTFILES-
#                         org.Project.IFace.rst
#   --pragma-once         Use "pragma once" as the inclusion guard
#   --annotate WHAT KEY VALUE WHAT KEY VALUE WHAT KEY VALUE
#                         Add annotation (may be used several times)
#   --glib-min-required VERSION
#                         Minimum version of GLib to be supported by the
#                         outputted code (default: 2.30)
#   --glib-max-allowed VERSION
#                         Maximum version of GLib to be used by the outputted
#                         code (default: current GLib version)
#   --symbol-decorator SYMBOL_DECORATOR
#                         Macro used to decorate a symbol in the outputted
#                         header, possibly to export symbols
#   --symbol-decorator-header SYMBOL_DECORATOR_HEADER
#                         Additional header required for decorator specified by
#                         --symbol-decorator
#   --symbol-decorator-define SYMBOL_DECORATOR_DEFINE
#                         Additional define required for decorator specified by
#                         --symbol-decorator
#   --generate-c-code OUTFILES
#                         Generate C code in OUTFILES.[ch]
#   --header              Generate C headers
#   --body                Generate C code
#   --interface-info-header
#                         Generate GDBusInterfaceInfo C header
#   --interface-info-body
#                         Generate GDBusInterfaceInfo C code
#   --output FILE         Write output into the specified file
#   --output-directory OUTDIR
#                         Location to output generated files
# Error:
ok 36 __main__.TestCodegen.test_indentation_preservation_in_comments
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpizrm9isz
# /tmp/tmpizrm9isz/tmpnkuukkqw.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- GetKeyBinding:
#                  @index: 0-based index of the action to query.
# 
#                  Gets the keybinding which can be used to activate this action, if one
#                  exists. The string returned should contain localized, human-readable,
#                  key sequences as they would appear when displayed on screen. It must
#                  be in the format "mnemonic;sequence;shortcut".
# 
#                  - The mnemonic key activates the object if it is presently enabled onscreen.
#                    This typically corresponds to the underlined letter within the widget.
#                    Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
#                    a button.
# 
#                  If there is no key binding for this action, return "".
#             -->
#             <method name="GetKeyBinding">
#               <arg type="i" name="index" direction="in"/>
#               <arg type="s" direction="out"/>
#             </method>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpizrm9isz/tmpnkuukkqw.xml', '--generate-rst', 'test']
# Return code: 0
# Output:
#  
# Error:
#  
# /tmp/tmpizrm9isz/tmpbe9993ks.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- GetKeyBinding:
#                  @index: 0-based index of the action to query.
# 
#                  Gets the keybinding which can be used to activate this action, if one
#                  exists. The string returned should contain localized, human-readable,
#                  key sequences as they would appear when displayed on screen. It must
#                  be in the format "mnemonic;sequence;shortcut".
# 
#                  - The mnemonic key activates the object if it is presently enabled onscreen.
#                    This typically corresponds to the underlined letter within the widget.
#                    Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
#                    a button.
# 
#                  If there is no key binding for this action, return "".
#             -->
#             <method name="GetKeyBinding">
#               <arg type="i" name="index" direction="in"/>
#               <arg type="s" direction="out"/>
#             </method>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpizrm9isz/tmpbe9993ks.xml', '--generate-md', 'test']
# Return code: 0
# Output:
#  
# Error:
#  
# /tmp/tmpizrm9isz/tmpdux3p2jb.xml: 
#         <node>
#           <interface name="org.project.Bar.Frobnicator">
#             <!-- GetKeyBinding:
#                  @index: 0-based index of the action to query.
# 
#                  Gets the keybinding which can be used to activate this action, if one
#                  exists. The string returned should contain localized, human-readable,
#                  key sequences as they would appear when displayed on screen. It must
#                  be in the format "mnemonic;sequence;shortcut".
# 
#                  - The mnemonic key activates the object if it is presently enabled onscreen.
#                    This typically corresponds to the underlined letter within the widget.
#                    Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
#                    a button.
# 
#                  If there is no key binding for this action, return "".
#             -->
#             <method name="GetKeyBinding">
#               <arg type="i" name="index" direction="in"/>
#               <arg type="s" direction="out"/>
#             </method>
#           </interface>
#         </node>
#         
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpizrm9isz/tmpdux3p2jb.xml', '--generate-docbook', 'test']
# Return code: 0
# Output:
#  
# Error:
ok 37 __main__.TestCodegen.test_no_args
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmph3f1yfif
# Running: ['/usr/bin/gdbus-codegen']
# Return code: 2
# Output:
#  
# Error:
#  usage: gdbus-codegen [-h] [--interface-prefix PREFIX]
#                      [--c-namespace NAMESPACE] [--c-generate-object-manager]
#                      [--c-generate-autocleanup {none,objects,all}]
#                      [--generate-docbook OUTFILES] [--generate-md OUTFILES]
#                      [--generate-rst OUTFILES] [--pragma-once]
#                      [--annotate WHAT KEY VALUE WHAT KEY VALUE WHAT KEY VALUE]
#                      [--glib-min-required VERSION]
#                      [--glib-max-allowed VERSION]
#                      [--symbol-decorator SYMBOL_DECORATOR]
#                      [--symbol-decorator-header SYMBOL_DECORATOR_HEADER]
#                      [--symbol-decorator-define SYMBOL_DECORATOR_DEFINE]
#                      [--generate-c-code OUTFILES | --header | --body |
#                      --interface-info-header | --interface-info-body]
#                      [--output FILE | --output-directory OUTDIR]
#                      FILE [FILE ...]
# gdbus-codegen: error: the following arguments are required: FILE
ok 38 __main__.TestCodegen.test_reproducible
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpip_5qhru
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpip_5qhru/tmpen5g0j4i1.xml', '/tmp/tmpip_5qhru/tmp1cluvjup2.xml', '--output', '-', '--header']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for org.project.Bar.Frobnicator */
# 
# #define TYPE_ORG_PROJECT_BAR_FROBNICATOR (org_project_bar_frobnicator_get_type ())
# #define ORG_PROJECT_BAR_FROBNICATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR, OrgProjectBarFrobnicator))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR))
# #define ORG_PROJECT_BAR_FROBNICATOR_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR, OrgProjectBarFrobnicatorIface))
# 
# struct _OrgProjectBarFrobnicator;
# typedef struct _OrgProjectBarFrobnicator OrgProjectBarFrobnicator;
# typedef struct _OrgProjectBarFrobnicatorIface OrgProjectBarFrobnicatorIface;
# 
# struct _OrgProjectBarFrobnicatorIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_random_method) (
#     OrgProjectBarFrobnicator *object,
#     GDBusMethodInvocation *invocation);
# 
# };
# 
# GType org_project_bar_frobnicator_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *org_project_bar_frobnicator_interface_info (void);
# guint org_project_bar_frobnicator_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void org_project_bar_frobnicator_complete_random_method (
#     OrgProjectBarFrobnicator *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void org_project_bar_frobnicator_call_random_method (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean org_project_bar_frobnicator_call_random_method_finish (
#     OrgProjectBarFrobnicator *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean org_project_bar_frobnicator_call_random_method_sync (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY (org_project_bar_frobnicator_proxy_get_type ())
# #define ORG_PROJECT_BAR_FROBNICATOR_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxy))
# #define ORG_PROJECT_BAR_FROBNICATOR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxyClass))
# #define ORG_PROJECT_BAR_FROBNICATOR_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxyClass))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY))
# 
# typedef struct _OrgProjectBarFrobnicatorProxy OrgProjectBarFrobnicatorProxy;
# typedef struct _OrgProjectBarFrobnicatorProxyClass OrgProjectBarFrobnicatorProxyClass;
# typedef struct _OrgProjectBarFrobnicatorProxyPrivate OrgProjectBarFrobnicatorProxyPrivate;
# 
# struct _OrgProjectBarFrobnicatorProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   OrgProjectBarFrobnicatorProxyPrivate *priv;
# };
# 
# struct _OrgProjectBarFrobnicatorProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType org_project_bar_frobnicator_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectBarFrobnicatorProxy, g_object_unref)
# #endif
# 
# void org_project_bar_frobnicator_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void org_project_bar_frobnicator_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON (org_project_bar_frobnicator_skeleton_get_type ())
# #define ORG_PROJECT_BAR_FROBNICATOR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeleton))
# #define ORG_PROJECT_BAR_FROBNICATOR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeletonClass))
# #define ORG_PROJECT_BAR_FROBNICATOR_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeletonClass))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON))
# 
# typedef struct _OrgProjectBarFrobnicatorSkeleton OrgProjectBarFrobnicatorSkeleton;
# typedef struct _OrgProjectBarFrobnicatorSkeletonClass OrgProjectBarFrobnicatorSkeletonClass;
# typedef struct _OrgProjectBarFrobnicatorSkeletonPrivate OrgProjectBarFrobnicatorSkeletonPrivate;
# 
# struct _OrgProjectBarFrobnicatorSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   OrgProjectBarFrobnicatorSkeletonPrivate *priv;
# };
# 
# struct _OrgProjectBarFrobnicatorSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType org_project_bar_frobnicator_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectBarFrobnicatorSkeleton, g_object_unref)
# #endif
# 
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_skeleton_new (void);
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for com.acme.Coyote */
# 
# #define TYPE_COM_ACME_COYOTE (com_acme_coyote_get_type ())
# #define COM_ACME_COYOTE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_COM_ACME_COYOTE, ComAcmeCoyote))
# #define IS_COM_ACME_COYOTE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_COM_ACME_COYOTE))
# #define COM_ACME_COYOTE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_COM_ACME_COYOTE, ComAcmeCoyoteIface))
# 
# struct _ComAcmeCoyote;
# typedef struct _ComAcmeCoyote ComAcmeCoyote;
# typedef struct _ComAcmeCoyoteIface ComAcmeCoyoteIface;
# 
# struct _ComAcmeCoyoteIface
# {
#   GTypeInterface parent_iface;
# 
# 
# 
#   gboolean (*handle_attack) (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
#   gboolean (*handle_run) (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
#   gboolean (*handle_sleep) (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
#   const gchar * (*get_mood) (ComAcmeCoyote *object);
# 
#   void (*surprised) (
#     ComAcmeCoyote *object);
# 
# };
# 
# GType com_acme_coyote_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *com_acme_coyote_interface_info (void);
# guint com_acme_coyote_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void com_acme_coyote_complete_run (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
# void com_acme_coyote_complete_sleep (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
# void com_acme_coyote_complete_attack (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus signal emissions functions: */
# void com_acme_coyote_emit_surprised (
#     ComAcmeCoyote *object);
# 
# 
# 
# /* D-Bus method calls: */
# void com_acme_coyote_call_run (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean com_acme_coyote_call_run_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean com_acme_coyote_call_run_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# void com_acme_coyote_call_sleep (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean com_acme_coyote_call_sleep_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean com_acme_coyote_call_sleep_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# void com_acme_coyote_call_attack (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean com_acme_coyote_call_attack_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean com_acme_coyote_call_attack_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* D-Bus property accessors: */
# const gchar *com_acme_coyote_get_mood (ComAcmeCoyote *object);
# gchar *com_acme_coyote_dup_mood (ComAcmeCoyote *object);
# void com_acme_coyote_set_mood (ComAcmeCoyote *object, const gchar *value);
# 
# 
# /* ---- */
# 
# #define TYPE_COM_ACME_COYOTE_PROXY (com_acme_coyote_proxy_get_type ())
# #define COM_ACME_COYOTE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxy))
# #define COM_ACME_COYOTE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxyClass))
# #define COM_ACME_COYOTE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxyClass))
# #define IS_COM_ACME_COYOTE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_COM_ACME_COYOTE_PROXY))
# #define IS_COM_ACME_COYOTE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_COM_ACME_COYOTE_PROXY))
# 
# typedef struct _ComAcmeCoyoteProxy ComAcmeCoyoteProxy;
# typedef struct _ComAcmeCoyoteProxyClass ComAcmeCoyoteProxyClass;
# typedef struct _ComAcmeCoyoteProxyPrivate ComAcmeCoyoteProxyPrivate;
# 
# struct _ComAcmeCoyoteProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   ComAcmeCoyoteProxyPrivate *priv;
# };
# 
# struct _ComAcmeCoyoteProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType com_acme_coyote_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (ComAcmeCoyoteProxy, g_object_unref)
# #endif
# 
# void com_acme_coyote_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# ComAcmeCoyote *com_acme_coyote_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# ComAcmeCoyote *com_acme_coyote_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void com_acme_coyote_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# ComAcmeCoyote *com_acme_coyote_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# ComAcmeCoyote *com_acme_coyote_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_COM_ACME_COYOTE_SKELETON (com_acme_coyote_skeleton_get_type ())
# #define COM_ACME_COYOTE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeleton))
# #define COM_ACME_COYOTE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeletonClass))
# #define COM_ACME_COYOTE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeletonClass))
# #define IS_COM_ACME_COYOTE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_COM_ACME_COYOTE_SKELETON))
# #define IS_COM_ACME_COYOTE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_COM_ACME_COYOTE_SKELETON))
# 
# typedef struct _ComAcmeCoyoteSkeleton ComAcmeCoyoteSkeleton;
# typedef struct _ComAcmeCoyoteSkeletonClass ComAcmeCoyoteSkeletonClass;
# typedef struct _ComAcmeCoyoteSkeletonPrivate ComAcmeCoyoteSkeletonPrivate;
# 
# struct _ComAcmeCoyoteSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   ComAcmeCoyoteSkeletonPrivate *priv;
# };
# 
# struct _ComAcmeCoyoteSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType com_acme_coyote_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (ComAcmeCoyoteSkeleton, g_object_unref)
# #endif
# 
# ComAcmeCoyote *com_acme_coyote_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
#  
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpip_5qhru/tmp1cluvjup2.xml', '/tmp/tmpip_5qhru/tmpen5g0j4i1.xml', '--output', '-', '--header']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for org.project.Bar.Frobnicator */
# 
# #define TYPE_ORG_PROJECT_BAR_FROBNICATOR (org_project_bar_frobnicator_get_type ())
# #define ORG_PROJECT_BAR_FROBNICATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR, OrgProjectBarFrobnicator))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR))
# #define ORG_PROJECT_BAR_FROBNICATOR_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR, OrgProjectBarFrobnicatorIface))
# 
# struct _OrgProjectBarFrobnicator;
# typedef struct _OrgProjectBarFrobnicator OrgProjectBarFrobnicator;
# typedef struct _OrgProjectBarFrobnicatorIface OrgProjectBarFrobnicatorIface;
# 
# struct _OrgProjectBarFrobnicatorIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_random_method) (
#     OrgProjectBarFrobnicator *object,
#     GDBusMethodInvocation *invocation);
# 
# };
# 
# GType org_project_bar_frobnicator_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *org_project_bar_frobnicator_interface_info (void);
# guint org_project_bar_frobnicator_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void org_project_bar_frobnicator_complete_random_method (
#     OrgProjectBarFrobnicator *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void org_project_bar_frobnicator_call_random_method (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean org_project_bar_frobnicator_call_random_method_finish (
#     OrgProjectBarFrobnicator *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean org_project_bar_frobnicator_call_random_method_sync (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY (org_project_bar_frobnicator_proxy_get_type ())
# #define ORG_PROJECT_BAR_FROBNICATOR_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxy))
# #define ORG_PROJECT_BAR_FROBNICATOR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxyClass))
# #define ORG_PROJECT_BAR_FROBNICATOR_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxyClass))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY))
# 
# typedef struct _OrgProjectBarFrobnicatorProxy OrgProjectBarFrobnicatorProxy;
# typedef struct _OrgProjectBarFrobnicatorProxyClass OrgProjectBarFrobnicatorProxyClass;
# typedef struct _OrgProjectBarFrobnicatorProxyPrivate OrgProjectBarFrobnicatorProxyPrivate;
# 
# struct _OrgProjectBarFrobnicatorProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   OrgProjectBarFrobnicatorProxyPrivate *priv;
# };
# 
# struct _OrgProjectBarFrobnicatorProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType org_project_bar_frobnicator_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectBarFrobnicatorProxy, g_object_unref)
# #endif
# 
# void org_project_bar_frobnicator_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void org_project_bar_frobnicator_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON (org_project_bar_frobnicator_skeleton_get_type ())
# #define ORG_PROJECT_BAR_FROBNICATOR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeleton))
# #define ORG_PROJECT_BAR_FROBNICATOR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeletonClass))
# #define ORG_PROJECT_BAR_FROBNICATOR_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeletonClass))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON))
# #define IS_ORG_PROJECT_BAR_FROBNICATOR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON))
# 
# typedef struct _OrgProjectBarFrobnicatorSkeleton OrgProjectBarFrobnicatorSkeleton;
# typedef struct _OrgProjectBarFrobnicatorSkeletonClass OrgProjectBarFrobnicatorSkeletonClass;
# typedef struct _OrgProjectBarFrobnicatorSkeletonPrivate OrgProjectBarFrobnicatorSkeletonPrivate;
# 
# struct _OrgProjectBarFrobnicatorSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   OrgProjectBarFrobnicatorSkeletonPrivate *priv;
# };
# 
# struct _OrgProjectBarFrobnicatorSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType org_project_bar_frobnicator_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectBarFrobnicatorSkeleton, g_object_unref)
# #endif
# 
# OrgProjectBarFrobnicator *org_project_bar_frobnicator_skeleton_new (void);
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for com.acme.Coyote */
# 
# #define TYPE_COM_ACME_COYOTE (com_acme_coyote_get_type ())
# #define COM_ACME_COYOTE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_COM_ACME_COYOTE, ComAcmeCoyote))
# #define IS_COM_ACME_COYOTE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_COM_ACME_COYOTE))
# #define COM_ACME_COYOTE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_COM_ACME_COYOTE, ComAcmeCoyoteIface))
# 
# struct _ComAcmeCoyote;
# typedef struct _ComAcmeCoyote ComAcmeCoyote;
# typedef struct _ComAcmeCoyoteIface ComAcmeCoyoteIface;
# 
# struct _ComAcmeCoyoteIface
# {
#   GTypeInterface parent_iface;
# 
# 
# 
#   gboolean (*handle_attack) (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
#   gboolean (*handle_run) (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
#   gboolean (*handle_sleep) (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
#   const gchar * (*get_mood) (ComAcmeCoyote *object);
# 
#   void (*surprised) (
#     ComAcmeCoyote *object);
# 
# };
# 
# GType com_acme_coyote_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *com_acme_coyote_interface_info (void);
# guint com_acme_coyote_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void com_acme_coyote_complete_run (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
# void com_acme_coyote_complete_sleep (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
# void com_acme_coyote_complete_attack (
#     ComAcmeCoyote *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus signal emissions functions: */
# void com_acme_coyote_emit_surprised (
#     ComAcmeCoyote *object);
# 
# 
# 
# /* D-Bus method calls: */
# void com_acme_coyote_call_run (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean com_acme_coyote_call_run_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean com_acme_coyote_call_run_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# void com_acme_coyote_call_sleep (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean com_acme_coyote_call_sleep_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean com_acme_coyote_call_sleep_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# void com_acme_coyote_call_attack (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean com_acme_coyote_call_attack_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean com_acme_coyote_call_attack_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* D-Bus property accessors: */
# const gchar *com_acme_coyote_get_mood (ComAcmeCoyote *object);
# gchar *com_acme_coyote_dup_mood (ComAcmeCoyote *object);
# void com_acme_coyote_set_mood (ComAcmeCoyote *object, const gchar *value);
# 
# 
# /* ---- */
# 
# #define TYPE_COM_ACME_COYOTE_PROXY (com_acme_coyote_proxy_get_type ())
# #define COM_ACME_COYOTE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxy))
# #define COM_ACME_COYOTE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxyClass))
# #define COM_ACME_COYOTE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxyClass))
# #define IS_COM_ACME_COYOTE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_COM_ACME_COYOTE_PROXY))
# #define IS_COM_ACME_COYOTE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_COM_ACME_COYOTE_PROXY))
# 
# typedef struct _ComAcmeCoyoteProxy ComAcmeCoyoteProxy;
# typedef struct _ComAcmeCoyoteProxyClass ComAcmeCoyoteProxyClass;
# typedef struct _ComAcmeCoyoteProxyPrivate ComAcmeCoyoteProxyPrivate;
# 
# struct _ComAcmeCoyoteProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   ComAcmeCoyoteProxyPrivate *priv;
# };
# 
# struct _ComAcmeCoyoteProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType com_acme_coyote_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (ComAcmeCoyoteProxy, g_object_unref)
# #endif
# 
# void com_acme_coyote_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# ComAcmeCoyote *com_acme_coyote_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# ComAcmeCoyote *com_acme_coyote_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void com_acme_coyote_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# ComAcmeCoyote *com_acme_coyote_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# ComAcmeCoyote *com_acme_coyote_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_COM_ACME_COYOTE_SKELETON (com_acme_coyote_skeleton_get_type ())
# #define COM_ACME_COYOTE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeleton))
# #define COM_ACME_COYOTE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeletonClass))
# #define COM_ACME_COYOTE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeletonClass))
# #define IS_COM_ACME_COYOTE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_COM_ACME_COYOTE_SKELETON))
# #define IS_COM_ACME_COYOTE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_COM_ACME_COYOTE_SKELETON))
# 
# typedef struct _ComAcmeCoyoteSkeleton ComAcmeCoyoteSkeleton;
# typedef struct _ComAcmeCoyoteSkeletonClass ComAcmeCoyoteSkeletonClass;
# typedef struct _ComAcmeCoyoteSkeletonPrivate ComAcmeCoyoteSkeletonPrivate;
# 
# struct _ComAcmeCoyoteSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   ComAcmeCoyoteSkeletonPrivate *priv;
# };
# 
# struct _ComAcmeCoyoteSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType com_acme_coyote_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (ComAcmeCoyoteSkeleton, g_object_unref)
# #endif
# 
# ComAcmeCoyote *com_acme_coyote_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
#  
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpip_5qhru/tmpen5g0j4i1.xml', '/tmp/tmpip_5qhru/tmp1cluvjup2.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.Bar.Frobnicator
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectBarFrobnicator
#  * @title: OrgProjectBarFrobnicator
#  * @short_description: Generated C code for the org.project.Bar.Frobnicator D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.Bar.Frobnicator ---- */
# 
# static const _ExtendedGDBusMethodInfo _org_project_bar_frobnicator_method_info_random_method =
# {
#   {
#     -1,
#     (gchar *) "RandomMethod",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-random-method",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_bar_frobnicator_method_info_pointers[] =
# {
#   &_org_project_bar_frobnicator_method_info_random_method.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_bar_frobnicator_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.Bar.Frobnicator",
#     (GDBusMethodInfo **) &_org_project_bar_frobnicator_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-bar-frobnicator",
# };
# 
# 
# /**
#  * org_project_bar_frobnicator_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_bar_frobnicator_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_bar_frobnicator_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectBarFrobnicator interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_bar_frobnicator_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_bar_frobnicator_method_marshal_random_method (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectBarFrobnicator:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>.
#  */
# 
# /**
#  * OrgProjectBarFrobnicatorIface:
#  * @parent_iface: The parent interface.
#  * @handle_random_method: Handler for the #OrgProjectBarFrobnicator::handle-random-method signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>.
#  */
# 
# typedef OrgProjectBarFrobnicatorIface OrgProjectBarFrobnicatorInterface;
# G_DEFINE_INTERFACE (OrgProjectBarFrobnicator, org_project_bar_frobnicator, G_TYPE_OBJECT)
# 
# static void
# org_project_bar_frobnicator_default_init (OrgProjectBarFrobnicatorIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectBarFrobnicator::handle-random-method:
#    * @object: A #OrgProjectBarFrobnicator.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</link> D-Bus method.
#    *
#    * 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 org_project_bar_frobnicator_complete_random_method() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-random-method",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectBarFrobnicatorIface, handle_random_method),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_bar_frobnicator_method_marshal_random_method,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_bar_frobnicator_call_random_method:
#  * @proxy: A #OrgProjectBarFrobnicatorProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_bar_frobnicator_call_random_method_finish() to get the result of the operation.
#  *
#  * See org_project_bar_frobnicator_call_random_method_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_bar_frobnicator_call_random_method (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "RandomMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_bar_frobnicator_call_random_method_finish:
#  * @proxy: A #OrgProjectBarFrobnicatorProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_bar_frobnicator_call_random_method().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_bar_frobnicator_call_random_method().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_bar_frobnicator_call_random_method_finish (
#     OrgProjectBarFrobnicator *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_call_random_method_sync:
#  * @proxy: A #OrgProjectBarFrobnicatorProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_bar_frobnicator_call_random_method() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_bar_frobnicator_call_random_method_sync (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "RandomMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_complete_random_method:
#  * @object: A #OrgProjectBarFrobnicator.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_bar_frobnicator_complete_random_method (
#     OrgProjectBarFrobnicator *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectBarFrobnicatorProxy:
#  *
#  * The #OrgProjectBarFrobnicatorProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectBarFrobnicatorProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectBarFrobnicatorProxy.
#  */
# 
# struct _OrgProjectBarFrobnicatorProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_bar_frobnicator_proxy_iface_init (OrgProjectBarFrobnicatorIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorProxy, org_project_bar_frobnicator_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectBarFrobnicatorProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorProxy, org_project_bar_frobnicator_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_proxy_iface_init))
# 
# #endif
# static void
# org_project_bar_frobnicator_proxy_finalize (GObject *object)
# {
#   OrgProjectBarFrobnicatorProxy *proxy = ORG_PROJECT_BAR_FROBNICATOR_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_bar_frobnicator_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_bar_frobnicator_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_bar_frobnicator_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_bar_frobnicator_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_bar_frobnicator_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectBarFrobnicatorProxy *proxy = ORG_PROJECT_BAR_FROBNICATOR_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_bar_frobnicator_proxy_init (OrgProjectBarFrobnicatorProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_bar_frobnicator_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_bar_frobnicator_interface_info ());
# }
# 
# static void
# org_project_bar_frobnicator_proxy_class_init (OrgProjectBarFrobnicatorProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_bar_frobnicator_proxy_finalize;
#   gobject_class->get_property = org_project_bar_frobnicator_proxy_get_property;
#   gobject_class->set_property = org_project_bar_frobnicator_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_bar_frobnicator_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_bar_frobnicator_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectBarFrobnicatorProxyPrivate));
# #endif
# }
# 
# static void
# org_project_bar_frobnicator_proxy_iface_init (OrgProjectBarFrobnicatorIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_bar_frobnicator_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_bar_frobnicator_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_bar_frobnicator_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_BAR_FROBNICATOR_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.project.Bar.Frobnicator", NULL);
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_bar_frobnicator_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_bar_frobnicator_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_bar_frobnicator_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.Bar.Frobnicator", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_bar_frobnicator_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_bar_frobnicator_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_bar_frobnicator_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_bar_frobnicator_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_BAR_FROBNICATOR_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.project.Bar.Frobnicator", NULL);
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_bar_frobnicator_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_bar_frobnicator_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_bar_frobnicator_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_bar_frobnicator_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.Bar.Frobnicator", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectBarFrobnicatorSkeleton:
#  *
#  * The #OrgProjectBarFrobnicatorSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectBarFrobnicatorSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectBarFrobnicatorSkeleton.
#  */
# 
# struct _OrgProjectBarFrobnicatorSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_bar_frobnicator_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_bar_frobnicator_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_bar_frobnicator_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_bar_frobnicator_skeleton_vtable =
# {
#   _org_project_bar_frobnicator_skeleton_handle_method_call,
#   _org_project_bar_frobnicator_skeleton_handle_get_property,
#   _org_project_bar_frobnicator_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_bar_frobnicator_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_bar_frobnicator_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_bar_frobnicator_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_bar_frobnicator_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_bar_frobnicator_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_bar_frobnicator_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_bar_frobnicator_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_bar_frobnicator_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_bar_frobnicator_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.project.Bar.Frobnicator", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_bar_frobnicator_skeleton_iface_init (OrgProjectBarFrobnicatorIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorSkeleton, org_project_bar_frobnicator_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectBarFrobnicatorSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorSkeleton, org_project_bar_frobnicator_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_skeleton_iface_init))
# 
# #endif
# static void
# org_project_bar_frobnicator_skeleton_finalize (GObject *object)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_bar_frobnicator_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_init (OrgProjectBarFrobnicatorSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_bar_frobnicator_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_class_init (OrgProjectBarFrobnicatorSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_bar_frobnicator_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_bar_frobnicator_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_bar_frobnicator_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_bar_frobnicator_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_bar_frobnicator_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectBarFrobnicatorSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_iface_init (OrgProjectBarFrobnicatorIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_bar_frobnicator_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorSkeleton): The skeleton object.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_skeleton_new (void)
# {
#   return ORG_PROJECT_BAR_FROBNICATOR (g_object_new (TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, NULL));
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface com.acme.Coyote
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:ComAcmeCoyote
#  * @title: ComAcmeCoyote
#  * @short_description: Generated C code for the com.acme.Coyote D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _COM_ACME_COYOTE_SURPRISED,
# };
# 
# static unsigned _COM_ACME_COYOTE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for com.acme.Coyote ---- */
# 
# static const _ExtendedGDBusMethodInfo _com_acme_coyote_method_info_run =
# {
#   {
#     -1,
#     (gchar *) "Run",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-run",
#   FALSE
# };
# 
# static const _ExtendedGDBusMethodInfo _com_acme_coyote_method_info_sleep =
# {
#   {
#     -1,
#     (gchar *) "Sleep",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-sleep",
#   FALSE
# };
# 
# static const _ExtendedGDBusMethodInfo _com_acme_coyote_method_info_attack =
# {
#   {
#     -1,
#     (gchar *) "Attack",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-attack",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _com_acme_coyote_method_info_pointers[] =
# {
#   &_com_acme_coyote_method_info_run.parent_struct,
#   &_com_acme_coyote_method_info_sleep.parent_struct,
#   &_com_acme_coyote_method_info_attack.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _com_acme_coyote_signal_info_surprised =
# {
#   {
#     -1,
#     (gchar *) "Surprised",
#     NULL,
#     NULL
#   },
#   "surprised"
# };
# 
# static const GDBusSignalInfo * const _com_acme_coyote_signal_info_pointers[] =
# {
#   &_com_acme_coyote_signal_info_surprised.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusPropertyInfo _com_acme_coyote_property_info_mood =
# {
#   {
#     -1,
#     (gchar *) "Mood",
#     (gchar *) "s",
#     G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
#     NULL
#   },
#   "mood",
#   FALSE,
#   TRUE
# };
# 
# static const GDBusPropertyInfo * const _com_acme_coyote_property_info_pointers[] =
# {
#   &_com_acme_coyote_property_info_mood.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _com_acme_coyote_interface_info =
# {
#   {
#     -1,
#     (gchar *) "com.acme.Coyote",
#     (GDBusMethodInfo **) &_com_acme_coyote_method_info_pointers,
#     (GDBusSignalInfo **) &_com_acme_coyote_signal_info_pointers,
#     (GDBusPropertyInfo **) &_com_acme_coyote_property_info_pointers,
#     NULL
#   },
#   "com-acme-coyote",
# };
# 
# 
# /**
#  * com_acme_coyote_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# com_acme_coyote_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct;
# }
# 
# /**
#  * com_acme_coyote_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #ComAcmeCoyote interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# com_acme_coyote_override_properties (GObjectClass *klass, guint property_id_begin)
# {
#   g_object_class_override_property (klass, property_id_begin++, "mood");
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# com_acme_coyote_signal_marshal_surprised (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# com_acme_coyote_method_marshal_run (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# com_acme_coyote_method_marshal_sleep (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# com_acme_coyote_method_marshal_attack (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * ComAcmeCoyote:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>.
#  */
# 
# /**
#  * ComAcmeCoyoteIface:
#  * @parent_iface: The parent interface.
#  * @handle_attack: Handler for the #ComAcmeCoyote::handle-attack signal.
#  * @handle_run: Handler for the #ComAcmeCoyote::handle-run signal.
#  * @handle_sleep: Handler for the #ComAcmeCoyote::handle-sleep signal.
#  * @get_mood: Getter for the #ComAcmeCoyote:mood property.
#  * @surprised: Handler for the #ComAcmeCoyote::surprised signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>.
#  */
# 
# typedef ComAcmeCoyoteIface ComAcmeCoyoteInterface;
# G_DEFINE_INTERFACE (ComAcmeCoyote, com_acme_coyote, G_TYPE_OBJECT)
# 
# static void
# com_acme_coyote_default_init (ComAcmeCoyoteIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * ComAcmeCoyote::handle-run:
#    * @object: A #ComAcmeCoyote.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</link> D-Bus method.
#    *
#    * 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 com_acme_coyote_complete_run() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-run",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (ComAcmeCoyoteIface, handle_run),
#     g_signal_accumulator_true_handled,
#     NULL,
#       com_acme_coyote_method_marshal_run,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
#   /**
#    * ComAcmeCoyote::handle-sleep:
#    * @object: A #ComAcmeCoyote.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</link> D-Bus method.
#    *
#    * 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 com_acme_coyote_complete_sleep() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-sleep",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (ComAcmeCoyoteIface, handle_sleep),
#     g_signal_accumulator_true_handled,
#     NULL,
#       com_acme_coyote_method_marshal_sleep,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
#   /**
#    * ComAcmeCoyote::handle-attack:
#    * @object: A #ComAcmeCoyote.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</link> D-Bus method.
#    *
#    * 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 com_acme_coyote_complete_attack() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-attack",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (ComAcmeCoyoteIface, handle_attack),
#     g_signal_accumulator_true_handled,
#     NULL,
#       com_acme_coyote_method_marshal_attack,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * ComAcmeCoyote::surprised:
#    * @object: A #ComAcmeCoyote.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-acme-Coyote.Surprised">"Surprised"</link> is received.
#    *
#    * 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.
#    */
#   _COM_ACME_COYOTE_SIGNALS[_COM_ACME_COYOTE_SURPRISED] =
#     g_signal_new ("surprised",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (ComAcmeCoyoteIface, surprised),
#       NULL,
#       NULL,
#       com_acme_coyote_signal_marshal_surprised,
#       G_TYPE_NONE,
#       0);
# 
#   /* GObject properties for D-Bus properties: */
#   /**
#    * ComAcmeCoyote:mood:
#    *
#    * Represents the D-Bus property <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link>.
#    *
#    * 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.
#    */
#   g_object_interface_install_property (iface,
#     g_param_spec_string ("mood", "Mood", "Mood", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
# }
# 
# /**
#  * com_acme_coyote_get_mood: (skip)
#  * @object: A #ComAcmeCoyote.
#  *
#  * Gets the value of the <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use com_acme_coyote_dup_mood() if on another thread.
#  *
#  * Returns: (transfer none) (nullable): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
#  */
# const gchar *
# com_acme_coyote_get_mood (ComAcmeCoyote *object)
# {
#   g_return_val_if_fail (IS_COM_ACME_COYOTE (object), NULL);
# 
#   return COM_ACME_COYOTE_GET_IFACE (object)->get_mood (object);
# }
# 
# /**
#  * com_acme_coyote_dup_mood: (skip)
#  * @object: A #ComAcmeCoyote.
#  *
#  * Gets a copy of the <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * Returns: (transfer full) (nullable): The property value or %NULL if the property is not set. The returned value should be freed with g_free().
#  */
# gchar *
# com_acme_coyote_dup_mood (ComAcmeCoyote *object)
# {
#   gchar *value;
#   g_object_get (G_OBJECT (object), "mood", &value, NULL);
#   return value;
# }
# 
# /**
#  * com_acme_coyote_set_mood: (skip)
#  * @object: A #ComAcmeCoyote.
#  * @value: The value to set.
#  *
#  * Sets the <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link> D-Bus property to @value.
#  *
#  * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
#  */
# void
# com_acme_coyote_set_mood (ComAcmeCoyote *object, const gchar *value)
# {
#   g_object_set (G_OBJECT (object), "mood", value, NULL);
# }
# 
# /**
#  * com_acme_coyote_emit_surprised:
#  * @object: A #ComAcmeCoyote.
#  *
#  * Emits the <link linkend="gdbus-signal-com-acme-Coyote.Surprised">"Surprised"</link> D-Bus signal.
#  */
# void
# com_acme_coyote_emit_surprised (
#     ComAcmeCoyote *object)
# {
#   g_signal_emit (object, _COM_ACME_COYOTE_SIGNALS[_COM_ACME_COYOTE_SURPRISED], 0);
# }
# 
# /**
#  * com_acme_coyote_call_run:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call com_acme_coyote_call_run_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_call_run_sync() for the synchronous, blocking version of this method.
#  */
# void
# com_acme_coyote_call_run (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "Run",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * com_acme_coyote_call_run_finish:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_call_run().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with com_acme_coyote_call_run().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_run_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_run_sync:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_call_run() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_run_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "Run",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_sleep:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call com_acme_coyote_call_sleep_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_call_sleep_sync() for the synchronous, blocking version of this method.
#  */
# void
# com_acme_coyote_call_sleep (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "Sleep",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * com_acme_coyote_call_sleep_finish:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_call_sleep().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with com_acme_coyote_call_sleep().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_sleep_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_sleep_sync:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_call_sleep() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_sleep_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "Sleep",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_attack:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call com_acme_coyote_call_attack_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_call_attack_sync() for the synchronous, blocking version of this method.
#  */
# void
# com_acme_coyote_call_attack (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "Attack",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * com_acme_coyote_call_attack_finish:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_call_attack().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with com_acme_coyote_call_attack().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_attack_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_attack_sync:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_call_attack() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_attack_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "Attack",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_complete_run:
#  * @object: A #ComAcmeCoyote.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# com_acme_coyote_complete_run (
#     ComAcmeCoyote *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /**
#  * com_acme_coyote_complete_sleep:
#  * @object: A #ComAcmeCoyote.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# com_acme_coyote_complete_sleep (
#     ComAcmeCoyote *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /**
#  * com_acme_coyote_complete_attack:
#  * @object: A #ComAcmeCoyote.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# com_acme_coyote_complete_attack (
#     ComAcmeCoyote *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * ComAcmeCoyoteProxy:
#  *
#  * The #ComAcmeCoyoteProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * ComAcmeCoyoteProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #ComAcmeCoyoteProxy.
#  */
# 
# struct _ComAcmeCoyoteProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void com_acme_coyote_proxy_iface_init (ComAcmeCoyoteIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteProxy, com_acme_coyote_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (ComAcmeCoyoteProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteProxy, com_acme_coyote_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_proxy_iface_init))
# 
# #endif
# static void
# com_acme_coyote_proxy_finalize (GObject *object)
# {
#   ComAcmeCoyoteProxy *proxy = COM_ACME_COYOTE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (com_acme_coyote_proxy_parent_class)->finalize (object);
# }
# 
# static void
# com_acme_coyote_proxy_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _com_acme_coyote_property_info_pointers[prop_id - 1];
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
#   if (info->use_gvariant)
#     {
#       g_value_set_variant (value, variant);
#     }
#   else
#     {
#       if (variant != NULL)
#         g_dbus_gvariant_to_gvalue (variant, value);
#     }
#   if (variant != NULL)
#     g_variant_unref (variant);
# }
# 
# static void
# com_acme_coyote_proxy_set_property_cb (GDBusProxy *proxy,
#   GAsyncResult *res,
#   gpointer      user_data)
# {
#   const _ExtendedGDBusPropertyInfo *info = user_data;
#   GError *error;
#   GVariant *_ret;
#   error = NULL;
#   _ret = g_dbus_proxy_call_finish (proxy, res, &error);
#   if (!_ret)
#     {
#       g_warning ("Error setting property '%s' on interface com.acme.Coyote: %s (%s, %d)",
#                  info->parent_struct.name, 
#                  error->message, g_quark_to_string (error->domain), error->code);
#       g_error_free (error);
#     }
#   else
#     {
#       g_variant_unref (_ret);
#     }
# }
# 
# static void
# com_acme_coyote_proxy_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _com_acme_coyote_property_info_pointers[prop_id - 1];
#   variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
#   g_dbus_proxy_call (G_DBUS_PROXY (object),
#     "org.freedesktop.DBus.Properties.Set",
#     g_variant_new ("(ssv)", "com.acme.Coyote", info->parent_struct.name, variant),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     NULL, (GAsyncReadyCallback) com_acme_coyote_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
#   g_variant_unref (variant);
# }
# 
# static void
# com_acme_coyote_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_COM_ACME_COYOTE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_COM_ACME_COYOTE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# com_acme_coyote_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   ComAcmeCoyoteProxy *proxy = COM_ACME_COYOTE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static const gchar *
# com_acme_coyote_proxy_get_mood (ComAcmeCoyote *object)
# {
#   ComAcmeCoyoteProxy *proxy = COM_ACME_COYOTE_PROXY (object);
#   GVariant *variant;
#   const gchar *value = NULL;
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Mood");
#   if (variant != NULL)
#     {
#       value = g_variant_get_string (variant, NULL);
#       g_variant_unref (variant);
#     }
#   return value;
# }
# 
# static void
# com_acme_coyote_proxy_init (ComAcmeCoyoteProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = com_acme_coyote_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), com_acme_coyote_interface_info ());
# }
# 
# static void
# com_acme_coyote_proxy_class_init (ComAcmeCoyoteProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = com_acme_coyote_proxy_finalize;
#   gobject_class->get_property = com_acme_coyote_proxy_get_property;
#   gobject_class->set_property = com_acme_coyote_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = com_acme_coyote_proxy_g_signal;
#   proxy_class->g_properties_changed = com_acme_coyote_proxy_g_properties_changed;
# 
#   com_acme_coyote_override_properties (gobject_class, 1);
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (ComAcmeCoyoteProxyPrivate));
# #endif
# }
# 
# static void
# com_acme_coyote_proxy_iface_init (ComAcmeCoyoteIface *iface)
# {
#   iface->get_mood = com_acme_coyote_proxy_get_mood;
# }
# 
# /**
#  * com_acme_coyote_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call com_acme_coyote_proxy_new_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# com_acme_coyote_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_COM_ACME_COYOTE_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", "com.acme.Coyote", NULL);
# }
# 
# /**
#  * com_acme_coyote_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with com_acme_coyote_proxy_new().
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * com_acme_coyote_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_COM_ACME_COYOTE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "com.acme.Coyote", NULL);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * com_acme_coyote_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like com_acme_coyote_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call com_acme_coyote_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# com_acme_coyote_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_COM_ACME_COYOTE_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", "com.acme.Coyote", NULL);
# }
# 
# /**
#  * com_acme_coyote_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with com_acme_coyote_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * com_acme_coyote_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like com_acme_coyote_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_COM_ACME_COYOTE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "com.acme.Coyote", NULL);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * ComAcmeCoyoteSkeleton:
#  *
#  * The #ComAcmeCoyoteSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * ComAcmeCoyoteSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #ComAcmeCoyoteSkeleton.
#  */
# 
# struct _ComAcmeCoyoteSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _com_acme_coyote_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_COM_ACME_COYOTE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_COM_ACME_COYOTE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _com_acme_coyote_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _com_acme_coyote_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _com_acme_coyote_skeleton_vtable =
# {
#   _com_acme_coyote_skeleton_handle_method_call,
#   _com_acme_coyote_skeleton_handle_get_property,
#   _com_acme_coyote_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# com_acme_coyote_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return com_acme_coyote_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# com_acme_coyote_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_com_acme_coyote_skeleton_vtable;
# }
# 
# static GVariant *
# com_acme_coyote_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_com_acme_coyote_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _com_acme_coyote_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _com_acme_coyote_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _com_acme_coyote_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)), "com.acme.Coyote", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static gboolean _com_acme_coyote_emit_changed (gpointer user_data);
# 
# static void
# com_acme_coyote_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (_skeleton);
#   gboolean emit_changed = FALSE;
# 
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     {
#       g_source_destroy (skeleton->priv->changed_properties_idle_source);
#       skeleton->priv->changed_properties_idle_source = NULL;
#       emit_changed = TRUE;
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# 
#   if (emit_changed)
#     _com_acme_coyote_emit_changed (skeleton);
# }
# 
# static void
# _com_acme_coyote_on_signal_surprised (
#     ComAcmeCoyote *object)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.acme.Coyote", "Surprised",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void com_acme_coyote_skeleton_iface_init (ComAcmeCoyoteIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteSkeleton, com_acme_coyote_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (ComAcmeCoyoteSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteSkeleton, com_acme_coyote_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_skeleton_iface_init))
# 
# #endif
# static void
# com_acme_coyote_skeleton_finalize (GObject *object)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   guint n;
#   for (n = 0; n < 1; n++)
#     g_value_unset (&skeleton->priv->properties[n]);
#   g_free (skeleton->priv->properties);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (com_acme_coyote_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# com_acme_coyote_skeleton_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   g_mutex_lock (&skeleton->priv->lock);
#   g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static gboolean
# _com_acme_coyote_emit_changed (gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   GList *l;
#   GVariantBuilder builder;
#   GVariantBuilder invalidated_builder;
#   guint num_changes;
# 
#   g_mutex_lock (&skeleton->priv->lock);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init_static (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #else
#   g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #endif
#   for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
#     {
#       ChangedProperty *cp = l->data;
#       GVariant *variant;
#       const GValue *cur_value;
# 
#       cur_value = &skeleton->priv->properties[cp->prop_id - 1];
#       if (!_g_value_equal (cur_value, &cp->orig_value))
#         {
#           variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
#           g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
#           g_variant_unref (variant);
#           num_changes++;
#         }
#     }
#   if (num_changes > 0)
#     {
#       GList *connections, *ll;
#       GVariant *signal_variant;
#       signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "com.acme.Coyote",
#                                            &builder, &invalidated_builder));
#       connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
#       for (ll = connections; ll != NULL; ll = ll->next)
#         {
#           GDBusConnection *connection = ll->data;
# 
#           g_dbus_connection_emit_signal (connection,
#                                          NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
#                                          "org.freedesktop.DBus.Properties",
#                                          "PropertiesChanged",
#                                          signal_variant,
#                                          NULL);
#         }
#       g_variant_unref (signal_variant);
#       g_list_free_full (connections, g_object_unref);
#     }
#   else
#     {
#       g_variant_builder_clear (&builder);
#       g_variant_builder_clear (&invalidated_builder);
#     }
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   skeleton->priv->changed_properties = NULL;
#   skeleton->priv->changed_properties_idle_source = NULL;
#   g_mutex_unlock (&skeleton->priv->lock);
#   return FALSE;
# }
# 
# static void
# _com_acme_coyote_schedule_emit_changed (ComAcmeCoyoteSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
# {
#   ChangedProperty *cp;
#   GList *l;
#   cp = NULL;
#   for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
#     {
#       ChangedProperty *i_cp = l->data;
#       if (i_cp->info == info)
#         {
#           cp = i_cp;
#           break;
#         }
#     }
#   if (cp == NULL)
#     {
#       cp = g_new0 (ChangedProperty, 1);
#       cp->prop_id = prop_id;
#       cp->info = info;
#       skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
#       g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
#       g_value_copy (orig_value, &cp->orig_value);
#     }
# }
# 
# static void
# com_acme_coyote_skeleton_notify (GObject      *object,
#   GParamSpec *pspec G_GNUC_UNUSED)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties != NULL &&
#       skeleton->priv->changed_properties_idle_source == NULL)
#     {
#       skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
#       g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
#       g_source_set_callback (skeleton->priv->changed_properties_idle_source, _com_acme_coyote_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
#       g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _com_acme_coyote_emit_changed");
#       g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
#       g_source_unref (skeleton->priv->changed_properties_idle_source);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static void
# com_acme_coyote_skeleton_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _com_acme_coyote_property_info_pointers[prop_id - 1];
#   g_mutex_lock (&skeleton->priv->lock);
#   g_object_freeze_notify (object);
#   if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
#     {
#       if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
#           info->emits_changed_signal)
#         _com_acme_coyote_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
#       g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
#       g_object_notify_by_pspec (object, pspec);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
#   g_object_thaw_notify (object);
# }
# 
# static void
# com_acme_coyote_skeleton_init (ComAcmeCoyoteSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = com_acme_coyote_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
#   skeleton->priv->properties = g_new0 (GValue, 1);
#   g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING);
# }
# 
# static const gchar *
# com_acme_coyote_skeleton_get_mood (ComAcmeCoyote *object)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   const gchar *value;
#   g_mutex_lock (&skeleton->priv->lock);
#   value = g_marshal_value_peek_string (&(skeleton->priv->properties[0]));
#   g_mutex_unlock (&skeleton->priv->lock);
#   return value;
# }
# 
# static void
# com_acme_coyote_skeleton_class_init (ComAcmeCoyoteSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = com_acme_coyote_skeleton_finalize;
#   gobject_class->get_property = com_acme_coyote_skeleton_get_property;
#   gobject_class->set_property = com_acme_coyote_skeleton_set_property;
#   gobject_class->notify       = com_acme_coyote_skeleton_notify;
# 
# 
#   com_acme_coyote_override_properties (gobject_class, 1);
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = com_acme_coyote_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = com_acme_coyote_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = com_acme_coyote_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = com_acme_coyote_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (ComAcmeCoyoteSkeletonPrivate));
# #endif
# }
# 
# static void
# com_acme_coyote_skeleton_iface_init (ComAcmeCoyoteIface *iface)
# {
#   iface->surprised = _com_acme_coyote_on_signal_surprised;
#   iface->get_mood = com_acme_coyote_skeleton_get_mood;
# }
# 
# /**
#  * com_acme_coyote_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>.
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteSkeleton): The skeleton object.
#  */
# ComAcmeCoyote *
# com_acme_coyote_skeleton_new (void)
# {
#   return COM_ACME_COYOTE (g_object_new (TYPE_COM_ACME_COYOTE_SKELETON, NULL));
# }
# Error:
#  
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpip_5qhru/tmp1cluvjup2.xml', '/tmp/tmpip_5qhru/tmpen5g0j4i1.xml', '--output', '-', '--body']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifdef HAVE_CONFIG_H
# #  include "config.h"
# #endif
# 
# #include <string.h>
# #ifdef G_OS_UNIX
# #  include <gio/gunixfdlist.h>
# #endif
# 
# #ifdef G_ENABLE_DEBUG
# #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
# #define g_marshal_value_peek_char(v)     g_value_get_schar (v)
# #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
# #define g_marshal_value_peek_int(v)      g_value_get_int (v)
# #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
# #define g_marshal_value_peek_long(v)     g_value_get_long (v)
# #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
# #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
# #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
# #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
# #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
# #define g_marshal_value_peek_float(v)    g_value_get_float (v)
# #define g_marshal_value_peek_double(v)   g_value_get_double (v)
# #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
# #define g_marshal_value_peek_param(v)    g_value_get_param (v)
# #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
# #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
# #define g_marshal_value_peek_object(v)   g_value_get_object (v)
# #define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
# #else /* !G_ENABLE_DEBUG */
# /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
#  *          Do not access GValues directly in your code. Instead, use the
#  *          g_value_get_*() functions
#  */
# #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
# #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
# #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
# #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
# #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
# #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
# #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
# #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
# #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
# #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
# #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
# #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
# #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
# #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
# #define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
# #endif /* !G_ENABLE_DEBUG */
# 
# typedef struct
# {
#   GDBusArgInfo parent_struct;
#   gboolean use_gvariant;
# } _ExtendedGDBusArgInfo;
# 
# typedef struct
# {
#   GDBusMethodInfo parent_struct;
#   const gchar *signal_name;
#   gboolean pass_fdlist;
# } _ExtendedGDBusMethodInfo;
# 
# typedef struct
# {
#   GDBusSignalInfo parent_struct;
#   const gchar *signal_name;
# } _ExtendedGDBusSignalInfo;
# 
# typedef struct
# {
#   GDBusPropertyInfo parent_struct;
#   const gchar *hyphen_name;
#   guint use_gvariant : 1;
#   guint emits_changed_signal : 1;
# } _ExtendedGDBusPropertyInfo;
# 
# typedef struct
# {
#   GDBusInterfaceInfo parent_struct;
#   const gchar *hyphen_name;
# } _ExtendedGDBusInterfaceInfo;
# 
# typedef struct
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   guint prop_id;
#   GValue orig_value; /* the value before the change */
# } ChangedProperty;
# 
# static void
# _changed_property_free (ChangedProperty *data)
# {
#   g_value_unset (&data->orig_value);
#   g_free (data);
# }
# 
# static gboolean
# _g_strv_equal0 (gchar **a, gchar **b)
# {
#   gboolean ret = FALSE;
#   guint n;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   if (g_strv_length (a) != g_strv_length (b))
#     goto out;
#   for (n = 0; a[n] != NULL; n++)
#     if (g_strcmp0 (a[n], b[n]) != 0)
#       goto out;
#   ret = TRUE;
# out:
#   return ret;
# }
# 
# static gboolean
# _g_variant_equal0 (GVariant *a, GVariant *b)
# {
#   gboolean ret = FALSE;
#   if (a == NULL && b == NULL)
#     {
#       ret = TRUE;
#       goto out;
#     }
#   if (a == NULL || b == NULL)
#     goto out;
#   ret = g_variant_equal (a, b);
# out:
#   return ret;
# }
# 
# G_GNUC_UNUSED static gboolean
# _g_value_equal (const GValue *a, const GValue *b)
# {
#   gboolean ret = FALSE;
#   g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
#   switch (G_VALUE_TYPE (a))
#     {
#       case G_TYPE_BOOLEAN:
#         ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
#         break;
#       case G_TYPE_UCHAR:
#         ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
#         break;
#       case G_TYPE_INT:
#         ret = (g_value_get_int (a) == g_value_get_int (b));
#         break;
#       case G_TYPE_UINT:
#         ret = (g_value_get_uint (a) == g_value_get_uint (b));
#         break;
#       case G_TYPE_INT64:
#         ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
#         break;
#       case G_TYPE_UINT64:
#         ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
#         break;
#       case G_TYPE_DOUBLE:
#         {
#           /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
#           gdouble da = g_value_get_double (a);
#           gdouble db = g_value_get_double (b);
#           ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
#         }
#         break;
#       case G_TYPE_STRING:
#         ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
#         break;
#       case G_TYPE_VARIANT:
#         ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
#         break;
#       default:
#         if (G_VALUE_TYPE (a) == G_TYPE_STRV)
#           ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
#         else
#           g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
#         break;
#     }
#   return ret;
# }
# 
# static void
# _g_dbus_codegen_marshal_BOOLEAN__OBJECT (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint G_GNUC_UNUSED,
#     void         *marshal_data)
# {
#   typedef gboolean (*_GDbusCodegenMarshalBoolean_ObjectFunc)
#        (void *data1,
#         GDBusMethodInvocation *arg_method_invocation,
#         void *data2);
#   _GDbusCodegenMarshalBoolean_ObjectFunc callback;
#   GCClosure *cc = (GCClosure*) closure;
#   void *data1, *data2;
#   gboolean v_return;
# 
#   g_return_if_fail (return_value != NULL);
#   g_return_if_fail (n_param_values == 2);
# 
#   if (G_CCLOSURE_SWAP_DATA (closure))
#     {
#       data1 = closure->data;
#       data2 = g_value_peek_pointer (param_values + 0);
#     }
#   else
#     {
#       data1 = g_value_peek_pointer (param_values + 0);
#       data2 = closure->data;
#     }
# 
#   callback = (_GDbusCodegenMarshalBoolean_ObjectFunc)
#     (marshal_data ? marshal_data : cc->callback);
# 
#   v_return =
#     callback (data1,
#               g_marshal_value_peek_object (param_values + 1),
#               data2);
# 
#   g_value_set_boolean (return_value, v_return);
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface org.project.Bar.Frobnicator
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:OrgProjectBarFrobnicator
#  * @title: OrgProjectBarFrobnicator
#  * @short_description: Generated C code for the org.project.Bar.Frobnicator D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link> D-Bus interface in C.
#  */
# 
# /* ---- Introspection data for org.project.Bar.Frobnicator ---- */
# 
# static const _ExtendedGDBusMethodInfo _org_project_bar_frobnicator_method_info_random_method =
# {
#   {
#     -1,
#     (gchar *) "RandomMethod",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-random-method",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _org_project_bar_frobnicator_method_info_pointers[] =
# {
#   &_org_project_bar_frobnicator_method_info_random_method.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _org_project_bar_frobnicator_interface_info =
# {
#   {
#     -1,
#     (gchar *) "org.project.Bar.Frobnicator",
#     (GDBusMethodInfo **) &_org_project_bar_frobnicator_method_info_pointers,
#     NULL,
#     NULL,
#     NULL
#   },
#   "org-project-bar-frobnicator",
# };
# 
# 
# /**
#  * org_project_bar_frobnicator_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# org_project_bar_frobnicator_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct;
# }
# 
# /**
#  * org_project_bar_frobnicator_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #OrgProjectBarFrobnicator interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# org_project_bar_frobnicator_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
# {
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# org_project_bar_frobnicator_method_marshal_random_method (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * OrgProjectBarFrobnicator:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>.
#  */
# 
# /**
#  * OrgProjectBarFrobnicatorIface:
#  * @parent_iface: The parent interface.
#  * @handle_random_method: Handler for the #OrgProjectBarFrobnicator::handle-random-method signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>.
#  */
# 
# typedef OrgProjectBarFrobnicatorIface OrgProjectBarFrobnicatorInterface;
# G_DEFINE_INTERFACE (OrgProjectBarFrobnicator, org_project_bar_frobnicator, G_TYPE_OBJECT)
# 
# static void
# org_project_bar_frobnicator_default_init (OrgProjectBarFrobnicatorIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * OrgProjectBarFrobnicator::handle-random-method:
#    * @object: A #OrgProjectBarFrobnicator.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</link> D-Bus method.
#    *
#    * 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 org_project_bar_frobnicator_complete_random_method() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-random-method",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (OrgProjectBarFrobnicatorIface, handle_random_method),
#     g_signal_accumulator_true_handled,
#     NULL,
#       org_project_bar_frobnicator_method_marshal_random_method,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
# }
# 
# /**
#  * org_project_bar_frobnicator_call_random_method:
#  * @proxy: A #OrgProjectBarFrobnicatorProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call org_project_bar_frobnicator_call_random_method_finish() to get the result of the operation.
#  *
#  * See org_project_bar_frobnicator_call_random_method_sync() for the synchronous, blocking version of this method.
#  */
# void
# org_project_bar_frobnicator_call_random_method (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "RandomMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * org_project_bar_frobnicator_call_random_method_finish:
#  * @proxy: A #OrgProjectBarFrobnicatorProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_bar_frobnicator_call_random_method().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with org_project_bar_frobnicator_call_random_method().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_bar_frobnicator_call_random_method_finish (
#     OrgProjectBarFrobnicator *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_call_random_method_sync:
#  * @proxy: A #OrgProjectBarFrobnicatorProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See org_project_bar_frobnicator_call_random_method() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# org_project_bar_frobnicator_call_random_method_sync (
#     OrgProjectBarFrobnicator *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "RandomMethod",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_complete_random_method:
#  * @object: A #OrgProjectBarFrobnicator.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-project-Bar-Frobnicator.RandomMethod">RandomMethod()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# org_project_bar_frobnicator_complete_random_method (
#     OrgProjectBarFrobnicator *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectBarFrobnicatorProxy:
#  *
#  * The #OrgProjectBarFrobnicatorProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectBarFrobnicatorProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectBarFrobnicatorProxy.
#  */
# 
# struct _OrgProjectBarFrobnicatorProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void org_project_bar_frobnicator_proxy_iface_init (OrgProjectBarFrobnicatorIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorProxy, org_project_bar_frobnicator_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (OrgProjectBarFrobnicatorProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorProxy, org_project_bar_frobnicator_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_proxy_iface_init))
# 
# #endif
# static void
# org_project_bar_frobnicator_proxy_finalize (GObject *object)
# {
#   OrgProjectBarFrobnicatorProxy *proxy = ORG_PROJECT_BAR_FROBNICATOR_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (org_project_bar_frobnicator_proxy_parent_class)->finalize (object);
# }
# 
# static void
# org_project_bar_frobnicator_proxy_get_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   GValue       *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_bar_frobnicator_proxy_set_property (GObject      *object G_GNUC_UNUSED,
#   guint         prop_id G_GNUC_UNUSED,
#   const GValue *value G_GNUC_UNUSED,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
# }
# 
# static void
# org_project_bar_frobnicator_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# org_project_bar_frobnicator_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   OrgProjectBarFrobnicatorProxy *proxy = ORG_PROJECT_BAR_FROBNICATOR_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static void
# org_project_bar_frobnicator_proxy_init (OrgProjectBarFrobnicatorProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = org_project_bar_frobnicator_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, OrgProjectBarFrobnicatorProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), org_project_bar_frobnicator_interface_info ());
# }
# 
# static void
# org_project_bar_frobnicator_proxy_class_init (OrgProjectBarFrobnicatorProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = org_project_bar_frobnicator_proxy_finalize;
#   gobject_class->get_property = org_project_bar_frobnicator_proxy_get_property;
#   gobject_class->set_property = org_project_bar_frobnicator_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = org_project_bar_frobnicator_proxy_g_signal;
#   proxy_class->g_properties_changed = org_project_bar_frobnicator_proxy_g_properties_changed;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectBarFrobnicatorProxyPrivate));
# #endif
# }
# 
# static void
# org_project_bar_frobnicator_proxy_iface_init (OrgProjectBarFrobnicatorIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call org_project_bar_frobnicator_proxy_new_finish() to get the result of the operation.
#  *
#  * See org_project_bar_frobnicator_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_bar_frobnicator_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_BAR_FROBNICATOR_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.project.Bar.Frobnicator", NULL);
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_bar_frobnicator_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_bar_frobnicator_proxy_new().
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_bar_frobnicator_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.project.Bar.Frobnicator", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like org_project_bar_frobnicator_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call org_project_bar_frobnicator_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See org_project_bar_frobnicator_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# org_project_bar_frobnicator_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_ORG_PROJECT_BAR_FROBNICATOR_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.project.Bar.Frobnicator", NULL);
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_bar_frobnicator_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with org_project_bar_frobnicator_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * org_project_bar_frobnicator_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like org_project_bar_frobnicator_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See org_project_bar_frobnicator_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorProxy): The constructed proxy object or %NULL if @error is set.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_ORG_PROJECT_BAR_FROBNICATOR_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.project.Bar.Frobnicator", NULL);
#   if (ret != NULL)
#     return ORG_PROJECT_BAR_FROBNICATOR (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * OrgProjectBarFrobnicatorSkeleton:
#  *
#  * The #OrgProjectBarFrobnicatorSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * OrgProjectBarFrobnicatorSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #OrgProjectBarFrobnicatorSkeleton.
#  */
# 
# struct _OrgProjectBarFrobnicatorSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _org_project_bar_frobnicator_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_ORG_PROJECT_BAR_FROBNICATOR);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _org_project_bar_frobnicator_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _org_project_bar_frobnicator_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_org_project_bar_frobnicator_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _org_project_bar_frobnicator_skeleton_vtable =
# {
#   _org_project_bar_frobnicator_skeleton_handle_method_call,
#   _org_project_bar_frobnicator_skeleton_handle_get_property,
#   _org_project_bar_frobnicator_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# org_project_bar_frobnicator_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return org_project_bar_frobnicator_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# org_project_bar_frobnicator_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_org_project_bar_frobnicator_skeleton_vtable;
# }
# 
# static GVariant *
# org_project_bar_frobnicator_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_org_project_bar_frobnicator_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _org_project_bar_frobnicator_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _org_project_bar_frobnicator_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _org_project_bar_frobnicator_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.project.Bar.Frobnicator", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
# {
# }
# 
# static void org_project_bar_frobnicator_skeleton_iface_init (OrgProjectBarFrobnicatorIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorSkeleton, org_project_bar_frobnicator_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (OrgProjectBarFrobnicatorSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (OrgProjectBarFrobnicatorSkeleton, org_project_bar_frobnicator_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_ORG_PROJECT_BAR_FROBNICATOR, org_project_bar_frobnicator_skeleton_iface_init))
# 
# #endif
# static void
# org_project_bar_frobnicator_skeleton_finalize (GObject *object)
# {
#   OrgProjectBarFrobnicatorSkeleton *skeleton = ORG_PROJECT_BAR_FROBNICATOR_SKELETON (object);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (org_project_bar_frobnicator_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_init (OrgProjectBarFrobnicatorSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = org_project_bar_frobnicator_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, OrgProjectBarFrobnicatorSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_class_init (OrgProjectBarFrobnicatorSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = org_project_bar_frobnicator_skeleton_finalize;
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = org_project_bar_frobnicator_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = org_project_bar_frobnicator_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = org_project_bar_frobnicator_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = org_project_bar_frobnicator_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (OrgProjectBarFrobnicatorSkeletonPrivate));
# #endif
# }
# 
# static void
# org_project_bar_frobnicator_skeleton_iface_init (OrgProjectBarFrobnicatorIface *iface G_GNUC_UNUSED)
# {
# }
# 
# /**
#  * org_project_bar_frobnicator_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-project-Bar-Frobnicator.top_of_page">org.project.Bar.Frobnicator</link>.
#  *
#  * Returns: (transfer full) (type OrgProjectBarFrobnicatorSkeleton): The skeleton object.
#  */
# OrgProjectBarFrobnicator *
# org_project_bar_frobnicator_skeleton_new (void)
# {
#   return ORG_PROJECT_BAR_FROBNICATOR (g_object_new (TYPE_ORG_PROJECT_BAR_FROBNICATOR_SKELETON, NULL));
# }
# 
# /* ------------------------------------------------------------------------
#  * Code for interface com.acme.Coyote
#  * ------------------------------------------------------------------------
#  */
# 
# /**
#  * SECTION:ComAcmeCoyote
#  * @title: ComAcmeCoyote
#  * @short_description: Generated C code for the com.acme.Coyote D-Bus interface
#  *
#  * This section contains code for working with the <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link> D-Bus interface in C.
#  */
# 
# enum
# {
#   _COM_ACME_COYOTE_SURPRISED,
# };
# 
# static unsigned _COM_ACME_COYOTE_SIGNALS[1] = { 0 };
# 
# /* ---- Introspection data for com.acme.Coyote ---- */
# 
# static const _ExtendedGDBusMethodInfo _com_acme_coyote_method_info_run =
# {
#   {
#     -1,
#     (gchar *) "Run",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-run",
#   FALSE
# };
# 
# static const _ExtendedGDBusMethodInfo _com_acme_coyote_method_info_sleep =
# {
#   {
#     -1,
#     (gchar *) "Sleep",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-sleep",
#   FALSE
# };
# 
# static const _ExtendedGDBusMethodInfo _com_acme_coyote_method_info_attack =
# {
#   {
#     -1,
#     (gchar *) "Attack",
#     NULL,
#     NULL,
#     NULL
#   },
#   "handle-attack",
#   FALSE
# };
# 
# static const GDBusMethodInfo * const _com_acme_coyote_method_info_pointers[] =
# {
#   &_com_acme_coyote_method_info_run.parent_struct,
#   &_com_acme_coyote_method_info_sleep.parent_struct,
#   &_com_acme_coyote_method_info_attack.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusSignalInfo _com_acme_coyote_signal_info_surprised =
# {
#   {
#     -1,
#     (gchar *) "Surprised",
#     NULL,
#     NULL
#   },
#   "surprised"
# };
# 
# static const GDBusSignalInfo * const _com_acme_coyote_signal_info_pointers[] =
# {
#   &_com_acme_coyote_signal_info_surprised.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusPropertyInfo _com_acme_coyote_property_info_mood =
# {
#   {
#     -1,
#     (gchar *) "Mood",
#     (gchar *) "s",
#     G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
#     NULL
#   },
#   "mood",
#   FALSE,
#   TRUE
# };
# 
# static const GDBusPropertyInfo * const _com_acme_coyote_property_info_pointers[] =
# {
#   &_com_acme_coyote_property_info_mood.parent_struct,
#   NULL
# };
# 
# static const _ExtendedGDBusInterfaceInfo _com_acme_coyote_interface_info =
# {
#   {
#     -1,
#     (gchar *) "com.acme.Coyote",
#     (GDBusMethodInfo **) &_com_acme_coyote_method_info_pointers,
#     (GDBusSignalInfo **) &_com_acme_coyote_signal_info_pointers,
#     (GDBusPropertyInfo **) &_com_acme_coyote_property_info_pointers,
#     NULL
#   },
#   "com-acme-coyote",
# };
# 
# 
# /**
#  * com_acme_coyote_interface_info:
#  *
#  * Gets a machine-readable description of the <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link> D-Bus interface.
#  *
#  * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
#  */
# GDBusInterfaceInfo *
# com_acme_coyote_interface_info (void)
# {
#   return (GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct;
# }
# 
# /**
#  * com_acme_coyote_override_properties:
#  * @klass: The class structure for a #GObject derived class.
#  * @property_id_begin: The property id to assign to the first overridden property.
#  *
#  * Overrides all #GObject properties in the #ComAcmeCoyote interface for a concrete class.
#  * The properties are overridden in the order they are defined.
#  *
#  * Returns: The last property id.
#  */
# guint
# com_acme_coyote_override_properties (GObjectClass *klass, guint property_id_begin)
# {
#   g_object_class_override_property (klass, property_id_begin++, "mood");
#   return property_id_begin - 1;
# }
# 
# 
# inline static void
# com_acme_coyote_signal_marshal_surprised (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   g_cclosure_marshal_VOID__VOID (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# com_acme_coyote_method_marshal_run (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# com_acme_coyote_method_marshal_sleep (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# inline static void
# com_acme_coyote_method_marshal_attack (
#     GClosure     *closure,
#     GValue       *return_value,
#     unsigned int  n_param_values,
#     const GValue *param_values,
#     void         *invocation_hint,
#     void         *marshal_data)
# {
#   _g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure,
#     return_value, n_param_values, param_values, invocation_hint, marshal_data);
# }
# 
# 
# /**
#  * ComAcmeCoyote:
#  *
#  * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>.
#  */
# 
# /**
#  * ComAcmeCoyoteIface:
#  * @parent_iface: The parent interface.
#  * @handle_attack: Handler for the #ComAcmeCoyote::handle-attack signal.
#  * @handle_run: Handler for the #ComAcmeCoyote::handle-run signal.
#  * @handle_sleep: Handler for the #ComAcmeCoyote::handle-sleep signal.
#  * @get_mood: Getter for the #ComAcmeCoyote:mood property.
#  * @surprised: Handler for the #ComAcmeCoyote::surprised signal.
#  *
#  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>.
#  */
# 
# typedef ComAcmeCoyoteIface ComAcmeCoyoteInterface;
# G_DEFINE_INTERFACE (ComAcmeCoyote, com_acme_coyote, G_TYPE_OBJECT)
# 
# static void
# com_acme_coyote_default_init (ComAcmeCoyoteIface *iface)
# {
#   /* GObject signals for incoming D-Bus method calls: */
#   /**
#    * ComAcmeCoyote::handle-run:
#    * @object: A #ComAcmeCoyote.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</link> D-Bus method.
#    *
#    * 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 com_acme_coyote_complete_run() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-run",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (ComAcmeCoyoteIface, handle_run),
#     g_signal_accumulator_true_handled,
#     NULL,
#       com_acme_coyote_method_marshal_run,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
#   /**
#    * ComAcmeCoyote::handle-sleep:
#    * @object: A #ComAcmeCoyote.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</link> D-Bus method.
#    *
#    * 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 com_acme_coyote_complete_sleep() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-sleep",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (ComAcmeCoyoteIface, handle_sleep),
#     g_signal_accumulator_true_handled,
#     NULL,
#       com_acme_coyote_method_marshal_sleep,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
#   /**
#    * ComAcmeCoyote::handle-attack:
#    * @object: A #ComAcmeCoyote.
#    * @invocation: A #GDBusMethodInvocation.
#    *
#    * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</link> D-Bus method.
#    *
#    * 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 com_acme_coyote_complete_attack() 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.
#    *
#    * 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.
#    */
#   g_signal_new ("handle-attack",
#     G_TYPE_FROM_INTERFACE (iface),
#     G_SIGNAL_RUN_LAST,
#     G_STRUCT_OFFSET (ComAcmeCoyoteIface, handle_attack),
#     g_signal_accumulator_true_handled,
#     NULL,
#       com_acme_coyote_method_marshal_attack,
#     G_TYPE_BOOLEAN,
#     1,
#     G_TYPE_DBUS_METHOD_INVOCATION);
# 
#   /* GObject signals for received D-Bus signals: */
#   /**
#    * ComAcmeCoyote::surprised:
#    * @object: A #ComAcmeCoyote.
#    *
#    * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-acme-Coyote.Surprised">"Surprised"</link> is received.
#    *
#    * 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.
#    */
#   _COM_ACME_COYOTE_SIGNALS[_COM_ACME_COYOTE_SURPRISED] =
#     g_signal_new ("surprised",
#       G_TYPE_FROM_INTERFACE (iface),
#       G_SIGNAL_RUN_LAST,
#       G_STRUCT_OFFSET (ComAcmeCoyoteIface, surprised),
#       NULL,
#       NULL,
#       com_acme_coyote_signal_marshal_surprised,
#       G_TYPE_NONE,
#       0);
# 
#   /* GObject properties for D-Bus properties: */
#   /**
#    * ComAcmeCoyote:mood:
#    *
#    * Represents the D-Bus property <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link>.
#    *
#    * 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.
#    */
#   g_object_interface_install_property (iface,
#     g_param_spec_string ("mood", "Mood", "Mood", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
# }
# 
# /**
#  * com_acme_coyote_get_mood: (skip)
#  * @object: A #ComAcmeCoyote.
#  *
#  * Gets the value of the <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use com_acme_coyote_dup_mood() if on another thread.
#  *
#  * Returns: (transfer none) (nullable): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
#  */
# const gchar *
# com_acme_coyote_get_mood (ComAcmeCoyote *object)
# {
#   g_return_val_if_fail (IS_COM_ACME_COYOTE (object), NULL);
# 
#   return COM_ACME_COYOTE_GET_IFACE (object)->get_mood (object);
# }
# 
# /**
#  * com_acme_coyote_dup_mood: (skip)
#  * @object: A #ComAcmeCoyote.
#  *
#  * Gets a copy of the <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link> D-Bus property.
#  *
#  * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
#  *
#  * Returns: (transfer full) (nullable): The property value or %NULL if the property is not set. The returned value should be freed with g_free().
#  */
# gchar *
# com_acme_coyote_dup_mood (ComAcmeCoyote *object)
# {
#   gchar *value;
#   g_object_get (G_OBJECT (object), "mood", &value, NULL);
#   return value;
# }
# 
# /**
#  * com_acme_coyote_set_mood: (skip)
#  * @object: A #ComAcmeCoyote.
#  * @value: The value to set.
#  *
#  * Sets the <link linkend="gdbus-property-com-acme-Coyote.Mood">"Mood"</link> D-Bus property to @value.
#  *
#  * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
#  */
# void
# com_acme_coyote_set_mood (ComAcmeCoyote *object, const gchar *value)
# {
#   g_object_set (G_OBJECT (object), "mood", value, NULL);
# }
# 
# /**
#  * com_acme_coyote_emit_surprised:
#  * @object: A #ComAcmeCoyote.
#  *
#  * Emits the <link linkend="gdbus-signal-com-acme-Coyote.Surprised">"Surprised"</link> D-Bus signal.
#  */
# void
# com_acme_coyote_emit_surprised (
#     ComAcmeCoyote *object)
# {
#   g_signal_emit (object, _COM_ACME_COYOTE_SIGNALS[_COM_ACME_COYOTE_SURPRISED], 0);
# }
# 
# /**
#  * com_acme_coyote_call_run:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call com_acme_coyote_call_run_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_call_run_sync() for the synchronous, blocking version of this method.
#  */
# void
# com_acme_coyote_call_run (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "Run",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * com_acme_coyote_call_run_finish:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_call_run().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with com_acme_coyote_call_run().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_run_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_run_sync:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_call_run() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_run_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "Run",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_sleep:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call com_acme_coyote_call_sleep_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_call_sleep_sync() for the synchronous, blocking version of this method.
#  */
# void
# com_acme_coyote_call_sleep (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "Sleep",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * com_acme_coyote_call_sleep_finish:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_call_sleep().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with com_acme_coyote_call_sleep().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_sleep_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_sleep_sync:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_call_sleep() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_sleep_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "Sleep",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_attack:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</link> D-Bus method on @proxy.
#  * 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()).
#  * You can then call com_acme_coyote_call_attack_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_call_attack_sync() for the synchronous, blocking version of this method.
#  */
# void
# com_acme_coyote_call_attack (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data)
# {
#   g_dbus_proxy_call (G_DBUS_PROXY (proxy),
#     "Attack",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     callback,
#     user_data);
# }
# 
# /**
#  * com_acme_coyote_call_attack_finish:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_call_attack().
#  * @error: Return location for error or %NULL.
#  *
#  * Finishes an operation started with com_acme_coyote_call_attack().
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_attack_finish (
#     ComAcmeCoyote *proxy,
#     GAsyncResult *res,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_call_attack_sync:
#  * @proxy: A #ComAcmeCoyoteProxy.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL.
#  *
#  * Synchronously invokes the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_call_attack() for the asynchronous version of this method.
#  *
#  * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
#  */
# gboolean
# com_acme_coyote_call_attack_sync (
#     ComAcmeCoyote *proxy,
#     GCancellable *cancellable,
#     GError **error)
# {
#   GVariant *_ret;
#   _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
#     "Attack",
#     g_variant_new ("()"),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     cancellable,
#     error);
#   if (_ret == NULL)
#     goto _out;
#   g_variant_get (_ret,
#                  "()");
#   g_variant_unref (_ret);
# _out:
#   return _ret != NULL;
# }
# 
# /**
#  * com_acme_coyote_complete_run:
#  * @object: A #ComAcmeCoyote.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-acme-Coyote.Run">Run()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# com_acme_coyote_complete_run (
#     ComAcmeCoyote *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /**
#  * com_acme_coyote_complete_sleep:
#  * @object: A #ComAcmeCoyote.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-acme-Coyote.Sleep">Sleep()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# com_acme_coyote_complete_sleep (
#     ComAcmeCoyote *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /**
#  * com_acme_coyote_complete_attack:
#  * @object: A #ComAcmeCoyote.
#  * @invocation: (transfer full): A #GDBusMethodInvocation.
#  *
#  * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-acme-Coyote.Attack">Attack()</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.
#  *
#  * This method will free @invocation, you cannot use it afterwards.
#  */
# void
# com_acme_coyote_complete_attack (
#     ComAcmeCoyote *object G_GNUC_UNUSED,
#     GDBusMethodInvocation *invocation)
# {
#   g_dbus_method_invocation_return_value (invocation,
#     g_variant_new ("()"));
# }
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * ComAcmeCoyoteProxy:
#  *
#  * The #ComAcmeCoyoteProxy structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * ComAcmeCoyoteProxyClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #ComAcmeCoyoteProxy.
#  */
# 
# struct _ComAcmeCoyoteProxyPrivate
# {
#   GData *qdata;
# };
# 
# static void com_acme_coyote_proxy_iface_init (ComAcmeCoyoteIface *iface);
# 
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteProxy, com_acme_coyote_proxy, G_TYPE_DBUS_PROXY,
#                          G_ADD_PRIVATE (ComAcmeCoyoteProxy)
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_proxy_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteProxy, com_acme_coyote_proxy, G_TYPE_DBUS_PROXY,
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_proxy_iface_init))
# 
# #endif
# static void
# com_acme_coyote_proxy_finalize (GObject *object)
# {
#   ComAcmeCoyoteProxy *proxy = COM_ACME_COYOTE_PROXY (object);
#   g_datalist_clear (&proxy->priv->qdata);
#   G_OBJECT_CLASS (com_acme_coyote_proxy_parent_class)->finalize (object);
# }
# 
# static void
# com_acme_coyote_proxy_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _com_acme_coyote_property_info_pointers[prop_id - 1];
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
#   if (info->use_gvariant)
#     {
#       g_value_set_variant (value, variant);
#     }
#   else
#     {
#       if (variant != NULL)
#         g_dbus_gvariant_to_gvalue (variant, value);
#     }
#   if (variant != NULL)
#     g_variant_unref (variant);
# }
# 
# static void
# com_acme_coyote_proxy_set_property_cb (GDBusProxy *proxy,
#   GAsyncResult *res,
#   gpointer      user_data)
# {
#   const _ExtendedGDBusPropertyInfo *info = user_data;
#   GError *error;
#   GVariant *_ret;
#   error = NULL;
#   _ret = g_dbus_proxy_call_finish (proxy, res, &error);
#   if (!_ret)
#     {
#       g_warning ("Error setting property '%s' on interface com.acme.Coyote: %s (%s, %d)",
#                  info->parent_struct.name, 
#                  error->message, g_quark_to_string (error->domain), error->code);
#       g_error_free (error);
#     }
#   else
#     {
#       g_variant_unref (_ret);
#     }
# }
# 
# static void
# com_acme_coyote_proxy_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   GVariant *variant;
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _com_acme_coyote_property_info_pointers[prop_id - 1];
#   variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
#   g_dbus_proxy_call (G_DBUS_PROXY (object),
#     "org.freedesktop.DBus.Properties.Set",
#     g_variant_new ("(ssv)", "com.acme.Coyote", info->parent_struct.name, variant),
#     G_DBUS_CALL_FLAGS_NONE,
#     -1,
#     NULL, (GAsyncReadyCallback) com_acme_coyote_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
#   g_variant_unref (variant);
# }
# 
# static void
# com_acme_coyote_proxy_g_signal (GDBusProxy *proxy,
#   const gchar *sender_name G_GNUC_UNUSED,
#   const gchar *signal_name,
#   GVariant *parameters)
# {
#   _ExtendedGDBusSignalInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   gsize n;
#   guint signal_id;
#   info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, signal_name);
#   if (info == NULL)
#     return;
#   num_params = g_variant_n_children (parameters);
#   paramv = g_new0 (GValue, num_params + 1);
#   g_value_init (&paramv[0], TYPE_COM_ACME_COYOTE);
#   g_value_set_object (&paramv[0], proxy);
#   g_variant_iter_init (&iter, parameters);
#   n = 1;
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_COM_ACME_COYOTE);
#   g_signal_emitv (paramv, signal_id, 0, NULL);
#   for (n = 0; n < num_params + 1; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static void
# com_acme_coyote_proxy_g_properties_changed (GDBusProxy *_proxy,
#   GVariant *changed_properties,
#   const gchar *const *invalidated_properties)
# {
#   ComAcmeCoyoteProxy *proxy = COM_ACME_COYOTE_PROXY (_proxy);
#   guint n;
#   const gchar *key;
#   GVariantIter *iter;
#   _ExtendedGDBusPropertyInfo *info;
#   g_variant_get (changed_properties, "a{sv}", &iter);
#   while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, key);
#       g_datalist_remove_data (&proxy->priv->qdata, key);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
#   g_variant_iter_free (iter);
#   for (n = 0; invalidated_properties[n] != NULL; n++)
#     {
#       info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, invalidated_properties[n]);
#       g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
#       if (info != NULL)
#         g_object_notify (G_OBJECT (proxy), info->hyphen_name);
#     }
# }
# 
# static const gchar *
# com_acme_coyote_proxy_get_mood (ComAcmeCoyote *object)
# {
#   ComAcmeCoyoteProxy *proxy = COM_ACME_COYOTE_PROXY (object);
#   GVariant *variant;
#   const gchar *value = NULL;
#   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Mood");
#   if (variant != NULL)
#     {
#       value = g_variant_get_string (variant, NULL);
#       g_variant_unref (variant);
#     }
#   return value;
# }
# 
# static void
# com_acme_coyote_proxy_init (ComAcmeCoyoteProxy *proxy)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   proxy->priv = com_acme_coyote_proxy_get_instance_private (proxy);
# #else
#   proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TYPE_COM_ACME_COYOTE_PROXY, ComAcmeCoyoteProxyPrivate);
# #endif
# 
#   g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), com_acme_coyote_interface_info ());
# }
# 
# static void
# com_acme_coyote_proxy_class_init (ComAcmeCoyoteProxyClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusProxyClass *proxy_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize     = com_acme_coyote_proxy_finalize;
#   gobject_class->get_property = com_acme_coyote_proxy_get_property;
#   gobject_class->set_property = com_acme_coyote_proxy_set_property;
# 
#   proxy_class = G_DBUS_PROXY_CLASS (klass);
#   proxy_class->g_signal = com_acme_coyote_proxy_g_signal;
#   proxy_class->g_properties_changed = com_acme_coyote_proxy_g_properties_changed;
# 
#   com_acme_coyote_override_properties (gobject_class, 1);
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (ComAcmeCoyoteProxyPrivate));
# #endif
# }
# 
# static void
# com_acme_coyote_proxy_iface_init (ComAcmeCoyoteIface *iface)
# {
#   iface->get_mood = com_acme_coyote_proxy_get_mood;
# }
# 
# /**
#  * com_acme_coyote_proxy_new:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>. See g_dbus_proxy_new() for more details.
#  *
#  * 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()).
#  * You can then call com_acme_coyote_proxy_new_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_proxy_new_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# com_acme_coyote_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_COM_ACME_COYOTE_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", "com.acme.Coyote", NULL);
# }
# 
# /**
#  * com_acme_coyote_proxy_new_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_proxy_new().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with com_acme_coyote_proxy_new().
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * com_acme_coyote_proxy_new_sync:
#  * @connection: A #GDBusConnection.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>. See g_dbus_proxy_new_sync() for more details.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_proxy_new() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_COM_ACME_COYOTE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "com.acme.Coyote", NULL);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# 
# /**
#  * com_acme_coyote_proxy_new_for_bus:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
#  * @user_data: User data to pass to @callback.
#  *
#  * Like com_acme_coyote_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * 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()).
#  * You can then call com_acme_coyote_proxy_new_for_bus_finish() to get the result of the operation.
#  *
#  * See com_acme_coyote_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
#  */
# void
# com_acme_coyote_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data)
# {
#   g_async_initable_new_async (TYPE_COM_ACME_COYOTE_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", "com.acme.Coyote", NULL);
# }
# 
# /**
#  * com_acme_coyote_proxy_new_for_bus_finish:
#  * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to com_acme_coyote_proxy_new_for_bus().
#  * @error: Return location for error or %NULL
#  *
#  * Finishes an operation started with com_acme_coyote_proxy_new_for_bus().
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error)
# {
#   GObject *ret;
#   GObject *source_object;
#   source_object = g_async_result_get_source_object (res);
#   ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
#   g_object_unref (source_object);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# /**
#  * com_acme_coyote_proxy_new_for_bus_sync:
#  * @bus_type: A #GBusType.
#  * @flags: Flags from the #GDBusProxyFlags enumeration.
#  * @name: A bus name (well-known or unique).
#  * @object_path: An object path.
#  * @cancellable: (nullable): A #GCancellable or %NULL.
#  * @error: Return location for error or %NULL
#  *
#  * Like com_acme_coyote_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
#  *
#  * The calling thread is blocked until a reply is received.
#  *
#  * See com_acme_coyote_proxy_new_for_bus() for the asynchronous version of this constructor.
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteProxy): The constructed proxy object or %NULL if @error is set.
#  */
# ComAcmeCoyote *
# com_acme_coyote_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error)
# {
#   GInitable *ret;
#   ret = g_initable_new (TYPE_COM_ACME_COYOTE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "com.acme.Coyote", NULL);
#   if (ret != NULL)
#     return COM_ACME_COYOTE (ret);
#   else
#     return NULL;
# }
# 
# 
# /* ------------------------------------------------------------------------ */
# 
# /**
#  * ComAcmeCoyoteSkeleton:
#  *
#  * The #ComAcmeCoyoteSkeleton structure contains only private data and should only be accessed using the provided API.
#  */
# 
# /**
#  * ComAcmeCoyoteSkeletonClass:
#  * @parent_class: The parent class.
#  *
#  * Class structure for #ComAcmeCoyoteSkeleton.
#  */
# 
# struct _ComAcmeCoyoteSkeletonPrivate
# {
#   GValue *properties;
#   GList *changed_properties;
#   GSource *changed_properties_idle_source;
#   GMainContext *context;
#   GMutex lock;
# };
# 
# static void
# _com_acme_coyote_skeleton_handle_method_call (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name,
#   const gchar *method_name,
#   GVariant *parameters,
#   GDBusMethodInvocation *invocation,
#   gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   _ExtendedGDBusMethodInfo *info;
#   GVariantIter iter;
#   GVariant *child;
#   GValue *paramv;
#   gsize num_params;
#   guint num_extra;
#   gsize n;
#   guint signal_id;
#   GValue return_value = G_VALUE_INIT;
#   info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
#   g_assert (info != NULL);
#   num_params = g_variant_n_children (parameters);
#   num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
#   n = 0;
#   g_value_init (&paramv[n], TYPE_COM_ACME_COYOTE);
#   g_value_set_object (&paramv[n++], skeleton);
#   g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
#   g_value_set_object (&paramv[n++], invocation);
#   if (info->pass_fdlist)
#     {
# #ifdef G_OS_UNIX
#       g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
#       g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
# #else
#       g_assert_not_reached ();
# #endif
#     }
#   g_variant_iter_init (&iter, parameters);
#   while ((child = g_variant_iter_next_value (&iter)) != NULL)
#     {
#       _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
#       if (arg_info->use_gvariant)
#         {
#           g_value_init (&paramv[n], G_TYPE_VARIANT);
#           g_value_set_variant (&paramv[n], child);
#           n++;
#         }
#       else
#         g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
#       g_variant_unref (child);
#     }
#   signal_id = g_signal_lookup (info->signal_name, TYPE_COM_ACME_COYOTE);
#   g_value_init (&return_value, G_TYPE_BOOLEAN);
#   g_signal_emitv (paramv, signal_id, 0, &return_value);
#   if (!g_value_get_boolean (&return_value))
#     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);
#   g_value_unset (&return_value);
#   for (n = 0; n < num_params + num_extra; n++)
#     g_value_unset (&paramv[n]);
#   g_free (paramv);
# }
# 
# static GVariant *
# _com_acme_coyote_skeleton_handle_get_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GError **error,
#   gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   GVariant *ret;
#   ret = NULL;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       g_value_init (&value, pspec->value_type);
#       g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
#       g_value_unset (&value);
#     }
#   return ret;
# }
# 
# static gboolean
# _com_acme_coyote_skeleton_handle_set_property (
#   GDBusConnection *connection G_GNUC_UNUSED,
#   const gchar *sender G_GNUC_UNUSED,
#   const gchar *object_path G_GNUC_UNUSED,
#   const gchar *interface_name G_GNUC_UNUSED,
#   const gchar *property_name,
#   GVariant *variant,
#   GError **error,
#   gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   GValue value = G_VALUE_INIT;
#   GParamSpec *pspec;
#   _ExtendedGDBusPropertyInfo *info;
#   gboolean ret;
#   ret = FALSE;
#   info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_com_acme_coyote_interface_info.parent_struct, property_name);
#   g_assert (info != NULL);
#   pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
#   if (pspec == NULL)
#     {
#       g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
#     }
#   else
#     {
#       if (info->use_gvariant)
#         g_value_set_variant (&value, variant);
#       else
#         g_dbus_gvariant_to_gvalue (variant, &value);
#       g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
#       g_value_unset (&value);
#       ret = TRUE;
#     }
#   return ret;
# }
# 
# static const GDBusInterfaceVTable _com_acme_coyote_skeleton_vtable =
# {
#   _com_acme_coyote_skeleton_handle_method_call,
#   _com_acme_coyote_skeleton_handle_get_property,
#   _com_acme_coyote_skeleton_handle_set_property,
#   {NULL}
# };
# 
# static GDBusInterfaceInfo *
# com_acme_coyote_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return com_acme_coyote_interface_info ();
# }
# 
# static GDBusInterfaceVTable *
# com_acme_coyote_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
# {
#   return (GDBusInterfaceVTable *) &_com_acme_coyote_skeleton_vtable;
# }
# 
# static GVariant *
# com_acme_coyote_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (_skeleton);
# 
#   GVariantBuilder builder;
#   guint n;
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
# #else
#   g_variant_builder_init(&builder, G_VARIANT_TYPE ("a{sv}"));
# #endif
#   if (_com_acme_coyote_interface_info.parent_struct.properties == NULL)
#     goto out;
#   for (n = 0; _com_acme_coyote_interface_info.parent_struct.properties[n] != NULL; n++)
#     {
#       GDBusPropertyInfo *info = _com_acme_coyote_interface_info.parent_struct.properties[n];
#       if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
#         {
#           GVariant *value;
#           value = _com_acme_coyote_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)), "com.acme.Coyote", info->name, NULL, skeleton);
#           if (value != NULL)
#             {
#               g_variant_take_ref (value);
#               g_variant_builder_add (&builder, "{sv}", info->name, value);
#               g_variant_unref (value);
#             }
#         }
#     }
# out:
#   return g_variant_builder_end (&builder);
# }
# 
# static gboolean _com_acme_coyote_emit_changed (gpointer user_data);
# 
# static void
# com_acme_coyote_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (_skeleton);
#   gboolean emit_changed = FALSE;
# 
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     {
#       g_source_destroy (skeleton->priv->changed_properties_idle_source);
#       skeleton->priv->changed_properties_idle_source = NULL;
#       emit_changed = TRUE;
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# 
#   if (emit_changed)
#     _com_acme_coyote_emit_changed (skeleton);
# }
# 
# static void
# _com_acme_coyote_on_signal_surprised (
#     ComAcmeCoyote *object)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
# 
#   GList      *connections, *l;
#   GVariant   *signal_variant;
#   connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
# 
#   signal_variant = g_variant_ref_sink (g_variant_new ("()"));
#   for (l = connections; l != NULL; l = l->next)
#     {
#       GDBusConnection *connection = l->data;
#       g_dbus_connection_emit_signal (connection,
#         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.acme.Coyote", "Surprised",
#         signal_variant, NULL);
#     }
#   g_variant_unref (signal_variant);
#   g_list_free_full (connections, g_object_unref);
# }
# 
# static void com_acme_coyote_skeleton_iface_init (ComAcmeCoyoteIface *iface);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteSkeleton, com_acme_coyote_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_ADD_PRIVATE (ComAcmeCoyoteSkeleton)
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_skeleton_iface_init))
# 
# #else
# G_DEFINE_TYPE_WITH_CODE (ComAcmeCoyoteSkeleton, com_acme_coyote_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
#                          G_IMPLEMENT_INTERFACE (TYPE_COM_ACME_COYOTE, com_acme_coyote_skeleton_iface_init))
# 
# #endif
# static void
# com_acme_coyote_skeleton_finalize (GObject *object)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   guint n;
#   for (n = 0; n < 1; n++)
#     g_value_unset (&skeleton->priv->properties[n]);
#   g_free (skeleton->priv->properties);
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   if (skeleton->priv->changed_properties_idle_source != NULL)
#     g_source_destroy (skeleton->priv->changed_properties_idle_source);
#   g_main_context_unref (skeleton->priv->context);
#   g_mutex_clear (&skeleton->priv->lock);
#   G_OBJECT_CLASS (com_acme_coyote_skeleton_parent_class)->finalize (object);
# }
# 
# static void
# com_acme_coyote_skeleton_get_property (GObject      *object,
#   guint         prop_id,
#   GValue       *value,
#   GParamSpec   *pspec G_GNUC_UNUSED)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   g_mutex_lock (&skeleton->priv->lock);
#   g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static gboolean
# _com_acme_coyote_emit_changed (gpointer user_data)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (user_data);
#   GList *l;
#   GVariantBuilder builder;
#   GVariantBuilder invalidated_builder;
#   guint num_changes;
# 
#   g_mutex_lock (&skeleton->priv->lock);
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_84
#   g_variant_builder_init_static (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init_static (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #else
#   g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
#   g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
# #endif
#   for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
#     {
#       ChangedProperty *cp = l->data;
#       GVariant *variant;
#       const GValue *cur_value;
# 
#       cur_value = &skeleton->priv->properties[cp->prop_id - 1];
#       if (!_g_value_equal (cur_value, &cp->orig_value))
#         {
#           variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
#           g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
#           g_variant_unref (variant);
#           num_changes++;
#         }
#     }
#   if (num_changes > 0)
#     {
#       GList *connections, *ll;
#       GVariant *signal_variant;
#       signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "com.acme.Coyote",
#                                            &builder, &invalidated_builder));
#       connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
#       for (ll = connections; ll != NULL; ll = ll->next)
#         {
#           GDBusConnection *connection = ll->data;
# 
#           g_dbus_connection_emit_signal (connection,
#                                          NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
#                                          "org.freedesktop.DBus.Properties",
#                                          "PropertiesChanged",
#                                          signal_variant,
#                                          NULL);
#         }
#       g_variant_unref (signal_variant);
#       g_list_free_full (connections, g_object_unref);
#     }
#   else
#     {
#       g_variant_builder_clear (&builder);
#       g_variant_builder_clear (&invalidated_builder);
#     }
#   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
#   skeleton->priv->changed_properties = NULL;
#   skeleton->priv->changed_properties_idle_source = NULL;
#   g_mutex_unlock (&skeleton->priv->lock);
#   return FALSE;
# }
# 
# static void
# _com_acme_coyote_schedule_emit_changed (ComAcmeCoyoteSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
# {
#   ChangedProperty *cp;
#   GList *l;
#   cp = NULL;
#   for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
#     {
#       ChangedProperty *i_cp = l->data;
#       if (i_cp->info == info)
#         {
#           cp = i_cp;
#           break;
#         }
#     }
#   if (cp == NULL)
#     {
#       cp = g_new0 (ChangedProperty, 1);
#       cp->prop_id = prop_id;
#       cp->info = info;
#       skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
#       g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
#       g_value_copy (orig_value, &cp->orig_value);
#     }
# }
# 
# static void
# com_acme_coyote_skeleton_notify (GObject      *object,
#   GParamSpec *pspec G_GNUC_UNUSED)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   g_mutex_lock (&skeleton->priv->lock);
#   if (skeleton->priv->changed_properties != NULL &&
#       skeleton->priv->changed_properties_idle_source == NULL)
#     {
#       skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
#       g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
#       g_source_set_callback (skeleton->priv->changed_properties_idle_source, _com_acme_coyote_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
#       g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _com_acme_coyote_emit_changed");
#       g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
#       g_source_unref (skeleton->priv->changed_properties_idle_source);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
# }
# 
# static void
# com_acme_coyote_skeleton_set_property (GObject      *object,
#   guint         prop_id,
#   const GValue *value,
#   GParamSpec   *pspec)
# {
#   const _ExtendedGDBusPropertyInfo *info;
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   g_assert (prop_id != 0 && prop_id - 1 < 1);
#   info = (const _ExtendedGDBusPropertyInfo *) _com_acme_coyote_property_info_pointers[prop_id - 1];
#   g_mutex_lock (&skeleton->priv->lock);
#   g_object_freeze_notify (object);
#   if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
#     {
#       if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
#           info->emits_changed_signal)
#         _com_acme_coyote_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
#       g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
#       g_object_notify_by_pspec (object, pspec);
#     }
#   g_mutex_unlock (&skeleton->priv->lock);
#   g_object_thaw_notify (object);
# }
# 
# static void
# com_acme_coyote_skeleton_init (ComAcmeCoyoteSkeleton *skeleton)
# {
# #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
#   skeleton->priv = com_acme_coyote_skeleton_get_instance_private (skeleton);
# #else
#   skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TYPE_COM_ACME_COYOTE_SKELETON, ComAcmeCoyoteSkeletonPrivate);
# #endif
# 
#   g_mutex_init (&skeleton->priv->lock);
#   skeleton->priv->context = g_main_context_ref_thread_default ();
#   skeleton->priv->properties = g_new0 (GValue, 1);
#   g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING);
# }
# 
# static const gchar *
# com_acme_coyote_skeleton_get_mood (ComAcmeCoyote *object)
# {
#   ComAcmeCoyoteSkeleton *skeleton = COM_ACME_COYOTE_SKELETON (object);
#   const gchar *value;
#   g_mutex_lock (&skeleton->priv->lock);
#   value = g_marshal_value_peek_string (&(skeleton->priv->properties[0]));
#   g_mutex_unlock (&skeleton->priv->lock);
#   return value;
# }
# 
# static void
# com_acme_coyote_skeleton_class_init (ComAcmeCoyoteSkeletonClass *klass)
# {
#   GObjectClass *gobject_class;
#   GDBusInterfaceSkeletonClass *skeleton_class;
# 
#   gobject_class = G_OBJECT_CLASS (klass);
#   gobject_class->finalize = com_acme_coyote_skeleton_finalize;
#   gobject_class->get_property = com_acme_coyote_skeleton_get_property;
#   gobject_class->set_property = com_acme_coyote_skeleton_set_property;
#   gobject_class->notify       = com_acme_coyote_skeleton_notify;
# 
# 
#   com_acme_coyote_override_properties (gobject_class, 1);
# 
#   skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
#   skeleton_class->get_info = com_acme_coyote_skeleton_dbus_interface_get_info;
#   skeleton_class->get_properties = com_acme_coyote_skeleton_dbus_interface_get_properties;
#   skeleton_class->flush = com_acme_coyote_skeleton_dbus_interface_flush;
#   skeleton_class->get_vtable = com_acme_coyote_skeleton_dbus_interface_get_vtable;
# 
# #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
#   g_type_class_add_private (klass, sizeof (ComAcmeCoyoteSkeletonPrivate));
# #endif
# }
# 
# static void
# com_acme_coyote_skeleton_iface_init (ComAcmeCoyoteIface *iface)
# {
#   iface->surprised = _com_acme_coyote_on_signal_surprised;
#   iface->get_mood = com_acme_coyote_skeleton_get_mood;
# }
# 
# /**
#  * com_acme_coyote_skeleton_new:
#  *
#  * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-com-acme-Coyote.top_of_page">com.acme.Coyote</link>.
#  *
#  * Returns: (transfer full) (type ComAcmeCoyoteSkeleton): The skeleton object.
#  */
# ComAcmeCoyote *
# com_acme_coyote_skeleton_new (void)
# {
#   return COM_ACME_COYOTE (g_object_new (TYPE_COM_ACME_COYOTE_SKELETON, NULL));
# }
# Error:
ok 39 __main__.TestCodegen.test_unix_fd_types_and_annotations
# gdbus-codegen: /usr/bin/gdbus-codegen
# tmpdir: /tmp/tmpb68xgwvl
# /tmp/tmpb68xgwvl/tmp9htclp6e.xml: 
#             <node>
#               <interface name="FDPassing">
#                 <method name="HelloFD">
#                   <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
#                   <arg name="greeting" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="s"/>
#                 </method>
#                 <method name="NoAnnotation">
#                   <arg name="greeting" direction="in" type="h"/>
#                   <arg name="greeting_locale" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="h"/>
#                   <arg name="response_locale" direction="out" type="s"/>
#                 </method>
#                 <method name="NoAnnotationNested">
#                   <arg name="files" type="a{sh}" direction="in"/>
#                 </method>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpb68xgwvl/tmp9htclp6e.xml', '--output', '-', '--header']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for FDPassing */
# 
# #define TYPE_FDPASSING (fdpassing_get_type ())
# #define FDPASSING(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING, FDPassing))
# #define IS_FDPASSING(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING))
# #define FDPASSING_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_FDPASSING, FDPassingIface))
# 
# struct _FDPassing;
# typedef struct _FDPassing FDPassing;
# typedef struct _FDPassingIface FDPassingIface;
# 
# struct _FDPassingIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_hello_fd) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *arg_greeting);
# 
#   gboolean (*handle_no_annotation) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale);
# 
#   gboolean (*handle_no_annotation_nested) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GVariant *arg_files);
# 
# };
# 
# GType fdpassing_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *fdpassing_interface_info (void);
# guint fdpassing_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void fdpassing_complete_hello_fd (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *response);
# 
# void fdpassing_complete_no_annotation (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GVariant *response,
#     const gchar *response_locale);
# 
# void fdpassing_complete_no_annotation_nested (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void fdpassing_call_hello_fd (
#     FDPassing *proxy,
#     const gchar *arg_greeting,
#     GUnixFDList *fd_list,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_hello_fd_finish (
#     FDPassing *proxy,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_hello_fd_sync (
#     FDPassing *proxy,
#     const gchar *arg_greeting,
#     GUnixFDList  *fd_list,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GCancellable *cancellable,
#     GError **error);
# 
# void fdpassing_call_no_annotation (
#     FDPassing *proxy,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_no_annotation_finish (
#     FDPassing *proxy,
#     GVariant **out_response,
#     gchar **out_response_locale,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_no_annotation_sync (
#     FDPassing *proxy,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale,
#     GVariant **out_response,
#     gchar **out_response_locale,
#     GCancellable *cancellable,
#     GError **error);
# 
# void fdpassing_call_no_annotation_nested (
#     FDPassing *proxy,
#     GVariant *arg_files,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_no_annotation_nested_finish (
#     FDPassing *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_no_annotation_nested_sync (
#     FDPassing *proxy,
#     GVariant *arg_files,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_FDPASSING_PROXY (fdpassing_proxy_get_type ())
# #define FDPASSING_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING_PROXY, FDPassingProxy))
# #define FDPASSING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_FDPASSING_PROXY, FDPassingProxyClass))
# #define FDPASSING_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_FDPASSING_PROXY, FDPassingProxyClass))
# #define IS_FDPASSING_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING_PROXY))
# #define IS_FDPASSING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_FDPASSING_PROXY))
# 
# typedef struct _FDPassingProxy FDPassingProxy;
# typedef struct _FDPassingProxyClass FDPassingProxyClass;
# typedef struct _FDPassingProxyPrivate FDPassingProxyPrivate;
# 
# struct _FDPassingProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   FDPassingProxyPrivate *priv;
# };
# 
# struct _FDPassingProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType fdpassing_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (FDPassingProxy, g_object_unref)
# #endif
# 
# void fdpassing_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# FDPassing *fdpassing_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# FDPassing *fdpassing_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void fdpassing_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# FDPassing *fdpassing_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# FDPassing *fdpassing_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_FDPASSING_SKELETON (fdpassing_skeleton_get_type ())
# #define FDPASSING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING_SKELETON, FDPassingSkeleton))
# #define FDPASSING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_FDPASSING_SKELETON, FDPassingSkeletonClass))
# #define FDPASSING_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_FDPASSING_SKELETON, FDPassingSkeletonClass))
# #define IS_FDPASSING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING_SKELETON))
# #define IS_FDPASSING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_FDPASSING_SKELETON))
# 
# typedef struct _FDPassingSkeleton FDPassingSkeleton;
# typedef struct _FDPassingSkeletonClass FDPassingSkeletonClass;
# typedef struct _FDPassingSkeletonPrivate FDPassingSkeletonPrivate;
# 
# struct _FDPassingSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   FDPassingSkeletonPrivate *priv;
# };
# 
# struct _FDPassingSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType fdpassing_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (FDPassingSkeleton, g_object_unref)
# #endif
# 
# FDPassing *fdpassing_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
#  
# /tmp/tmpb68xgwvl/tmpsisktnik.xml: 
#             <node>
#               <interface name="FDPassing">
#                 <method name="HelloFD">
#                   <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
#                   <arg name="greeting" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="s"/>
#                 </method>
#                 <method name="NoAnnotation">
#                   <arg name="greeting" direction="in" type="h"/>
#                   <arg name="greeting_locale" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="h"/>
#                   <arg name="response_locale" direction="out" type="s"/>
#                 </method>
#                 <method name="NoAnnotationNested">
#                   <arg name="files" type="a{sh}" direction="in"/>
#                 </method>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpb68xgwvl/tmpsisktnik.xml', '--output', '-', '--header', '--glib-min-required', '2.32']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for FDPassing */
# 
# #define TYPE_FDPASSING (fdpassing_get_type ())
# #define FDPASSING(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING, FDPassing))
# #define IS_FDPASSING(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING))
# #define FDPASSING_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_FDPASSING, FDPassingIface))
# 
# struct _FDPassing;
# typedef struct _FDPassing FDPassing;
# typedef struct _FDPassingIface FDPassingIface;
# 
# struct _FDPassingIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_hello_fd) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *arg_greeting);
# 
#   gboolean (*handle_no_annotation) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale);
# 
#   gboolean (*handle_no_annotation_nested) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GVariant *arg_files);
# 
# };
# 
# GType fdpassing_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *fdpassing_interface_info (void);
# guint fdpassing_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void fdpassing_complete_hello_fd (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *response);
# 
# void fdpassing_complete_no_annotation (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GVariant *response,
#     const gchar *response_locale);
# 
# void fdpassing_complete_no_annotation_nested (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation);
# 
# 
# 
# /* D-Bus method calls: */
# void fdpassing_call_hello_fd (
#     FDPassing *proxy,
#     const gchar *arg_greeting,
#     GUnixFDList *fd_list,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_hello_fd_finish (
#     FDPassing *proxy,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_hello_fd_sync (
#     FDPassing *proxy,
#     const gchar *arg_greeting,
#     GUnixFDList  *fd_list,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GCancellable *cancellable,
#     GError **error);
# 
# void fdpassing_call_no_annotation (
#     FDPassing *proxy,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_no_annotation_finish (
#     FDPassing *proxy,
#     GVariant **out_response,
#     gchar **out_response_locale,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_no_annotation_sync (
#     FDPassing *proxy,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale,
#     GVariant **out_response,
#     gchar **out_response_locale,
#     GCancellable *cancellable,
#     GError **error);
# 
# void fdpassing_call_no_annotation_nested (
#     FDPassing *proxy,
#     GVariant *arg_files,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_no_annotation_nested_finish (
#     FDPassing *proxy,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_no_annotation_nested_sync (
#     FDPassing *proxy,
#     GVariant *arg_files,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_FDPASSING_PROXY (fdpassing_proxy_get_type ())
# #define FDPASSING_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING_PROXY, FDPassingProxy))
# #define FDPASSING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_FDPASSING_PROXY, FDPassingProxyClass))
# #define FDPASSING_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_FDPASSING_PROXY, FDPassingProxyClass))
# #define IS_FDPASSING_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING_PROXY))
# #define IS_FDPASSING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_FDPASSING_PROXY))
# 
# typedef struct _FDPassingProxy FDPassingProxy;
# typedef struct _FDPassingProxyClass FDPassingProxyClass;
# typedef struct _FDPassingProxyPrivate FDPassingProxyPrivate;
# 
# struct _FDPassingProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   FDPassingProxyPrivate *priv;
# };
# 
# struct _FDPassingProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType fdpassing_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (FDPassingProxy, g_object_unref)
# #endif
# 
# void fdpassing_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# FDPassing *fdpassing_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# FDPassing *fdpassing_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void fdpassing_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# FDPassing *fdpassing_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# FDPassing *fdpassing_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_FDPASSING_SKELETON (fdpassing_skeleton_get_type ())
# #define FDPASSING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING_SKELETON, FDPassingSkeleton))
# #define FDPASSING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_FDPASSING_SKELETON, FDPassingSkeletonClass))
# #define FDPASSING_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_FDPASSING_SKELETON, FDPassingSkeletonClass))
# #define IS_FDPASSING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING_SKELETON))
# #define IS_FDPASSING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_FDPASSING_SKELETON))
# 
# typedef struct _FDPassingSkeleton FDPassingSkeleton;
# typedef struct _FDPassingSkeletonClass FDPassingSkeletonClass;
# typedef struct _FDPassingSkeletonPrivate FDPassingSkeletonPrivate;
# 
# struct _FDPassingSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   FDPassingSkeletonPrivate *priv;
# };
# 
# struct _FDPassingSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType fdpassing_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (FDPassingSkeleton, g_object_unref)
# #endif
# 
# FDPassing *fdpassing_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
#  
# /tmp/tmpb68xgwvl/tmpsx6b46tt.xml: 
#             <node>
#               <interface name="FDPassing">
#                 <method name="HelloFD">
#                   <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
#                   <arg name="greeting" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="s"/>
#                 </method>
#                 <method name="NoAnnotation">
#                   <arg name="greeting" direction="in" type="h"/>
#                   <arg name="greeting_locale" direction="in" type="s"/>
#                   <arg name="response" direction="out" type="h"/>
#                   <arg name="response_locale" direction="out" type="s"/>
#                 </method>
#                 <method name="NoAnnotationNested">
#                   <arg name="files" type="a{sh}" direction="in"/>
#                 </method>
#               </interface>
#             </node>
# Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpb68xgwvl/tmpsx6b46tt.xml', '--output', '-', '--header', '--glib-min-required', '2.64']
# Return code: 0
# Output:
#  /*
#  * This file is generated by gdbus-codegen, do not modify it.
#  *
#  * The license of this code is the same as for the D-Bus interface description
#  * it was derived from. Note that it links to GLib, so must comply with the
#  * LGPL linking clauses.
#  */
# 
# #ifndef __STDOUT__
# #define __STDOUT__
# 
# #include <gio/gio.h>
# 
# G_BEGIN_DECLS
# 
# 
# /* ------------------------------------------------------------------------ */
# /* Declarations for FDPassing */
# 
# #define TYPE_FDPASSING (fdpassing_get_type ())
# #define FDPASSING(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING, FDPassing))
# #define IS_FDPASSING(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING))
# #define FDPASSING_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_FDPASSING, FDPassingIface))
# 
# struct _FDPassing;
# typedef struct _FDPassing FDPassing;
# typedef struct _FDPassingIface FDPassingIface;
# 
# struct _FDPassingIface
# {
#   GTypeInterface parent_iface;
# 
#   gboolean (*handle_hello_fd) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *arg_greeting);
# 
#   gboolean (*handle_no_annotation) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale);
# 
#   gboolean (*handle_no_annotation_nested) (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     GVariant *arg_files);
# 
# };
# 
# GType fdpassing_get_type (void) G_GNUC_CONST;
# 
# GDBusInterfaceInfo *fdpassing_interface_info (void);
# guint fdpassing_override_properties (GObjectClass *klass, guint property_id_begin);
# 
# 
# /* D-Bus method call completion functions: */
# void fdpassing_complete_hello_fd (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     const gchar *response);
# 
# void fdpassing_complete_no_annotation (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list,
#     GVariant *response,
#     const gchar *response_locale);
# 
# void fdpassing_complete_no_annotation_nested (
#     FDPassing *object,
#     GDBusMethodInvocation *invocation,
#     GUnixFDList *fd_list);
# 
# 
# 
# /* D-Bus method calls: */
# void fdpassing_call_hello_fd (
#     FDPassing *proxy,
#     const gchar *arg_greeting,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GUnixFDList *fd_list,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_hello_fd_finish (
#     FDPassing *proxy,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_hello_fd_sync (
#     FDPassing *proxy,
#     const gchar *arg_greeting,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GUnixFDList  *fd_list,
#     gchar **out_response,
#     GUnixFDList **out_fd_list,
#     GCancellable *cancellable,
#     GError **error);
# 
# void fdpassing_call_no_annotation (
#     FDPassing *proxy,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GUnixFDList *fd_list,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_no_annotation_finish (
#     FDPassing *proxy,
#     GVariant **out_response,
#     gchar **out_response_locale,
#     GUnixFDList **out_fd_list,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_no_annotation_sync (
#     FDPassing *proxy,
#     GVariant *arg_greeting,
#     const gchar *arg_greeting_locale,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GUnixFDList  *fd_list,
#     GVariant **out_response,
#     gchar **out_response_locale,
#     GUnixFDList **out_fd_list,
#     GCancellable *cancellable,
#     GError **error);
# 
# void fdpassing_call_no_annotation_nested (
#     FDPassing *proxy,
#     GVariant *arg_files,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GUnixFDList *fd_list,
#     GCancellable *cancellable,
#     GAsyncReadyCallback callback,
#     gpointer user_data);
# 
# gboolean fdpassing_call_no_annotation_nested_finish (
#     FDPassing *proxy,
#     GUnixFDList **out_fd_list,
#     GAsyncResult *res,
#     GError **error);
# 
# gboolean fdpassing_call_no_annotation_nested_sync (
#     FDPassing *proxy,
#     GVariant *arg_files,
#     GDBusCallFlags call_flags,
#     gint timeout_msec,
#     GUnixFDList  *fd_list,
#     GUnixFDList **out_fd_list,
#     GCancellable *cancellable,
#     GError **error);
# 
# 
# 
# /* ---- */
# 
# #define TYPE_FDPASSING_PROXY (fdpassing_proxy_get_type ())
# #define FDPASSING_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING_PROXY, FDPassingProxy))
# #define FDPASSING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_FDPASSING_PROXY, FDPassingProxyClass))
# #define FDPASSING_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_FDPASSING_PROXY, FDPassingProxyClass))
# #define IS_FDPASSING_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING_PROXY))
# #define IS_FDPASSING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_FDPASSING_PROXY))
# 
# typedef struct _FDPassingProxy FDPassingProxy;
# typedef struct _FDPassingProxyClass FDPassingProxyClass;
# typedef struct _FDPassingProxyPrivate FDPassingProxyPrivate;
# 
# struct _FDPassingProxy
# {
#   /*< private >*/
#   GDBusProxy parent_instance;
#   FDPassingProxyPrivate *priv;
# };
# 
# struct _FDPassingProxyClass
# {
#   GDBusProxyClass parent_class;
# };
# 
# GType fdpassing_proxy_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (FDPassingProxy, g_object_unref)
# #endif
# 
# void fdpassing_proxy_new (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# FDPassing *fdpassing_proxy_new_finish (
#     GAsyncResult        *res,
#     GError             **error);
# FDPassing *fdpassing_proxy_new_sync (
#     GDBusConnection     *connection,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# void fdpassing_proxy_new_for_bus (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GAsyncReadyCallback  callback,
#     gpointer             user_data);
# FDPassing *fdpassing_proxy_new_for_bus_finish (
#     GAsyncResult        *res,
#     GError             **error);
# FDPassing *fdpassing_proxy_new_for_bus_sync (
#     GBusType             bus_type,
#     GDBusProxyFlags      flags,
#     const gchar         *name,
#     const gchar         *object_path,
#     GCancellable        *cancellable,
#     GError             **error);
# 
# 
# /* ---- */
# 
# #define TYPE_FDPASSING_SKELETON (fdpassing_skeleton_get_type ())
# #define FDPASSING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_FDPASSING_SKELETON, FDPassingSkeleton))
# #define FDPASSING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_FDPASSING_SKELETON, FDPassingSkeletonClass))
# #define FDPASSING_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_FDPASSING_SKELETON, FDPassingSkeletonClass))
# #define IS_FDPASSING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_FDPASSING_SKELETON))
# #define IS_FDPASSING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_FDPASSING_SKELETON))
# 
# typedef struct _FDPassingSkeleton FDPassingSkeleton;
# typedef struct _FDPassingSkeletonClass FDPassingSkeletonClass;
# typedef struct _FDPassingSkeletonPrivate FDPassingSkeletonPrivate;
# 
# struct _FDPassingSkeleton
# {
#   /*< private >*/
#   GDBusInterfaceSkeleton parent_instance;
#   FDPassingSkeletonPrivate *priv;
# };
# 
# struct _FDPassingSkeletonClass
# {
#   GDBusInterfaceSkeletonClass parent_class;
# };
# 
# GType fdpassing_skeleton_get_type (void) G_GNUC_CONST;
# 
# #if GLIB_CHECK_VERSION(2, 44, 0)
# G_DEFINE_AUTOPTR_CLEANUP_FUNC (FDPassingSkeleton, g_object_unref)
# #endif
# 
# FDPassing *fdpassing_skeleton_new (void);
# 
# 
# G_END_DECLS
# 
# #endif /* __STDOUT__ */
# Error:
1..39
PASS: glib/codegen.py.test
Running test: glib/tls-database.test
TAP version 14
# random seed: R02S2e1c8b330b8db030bf05b645406db57a
1..1
# Start of tls-backend tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation test (GTestTlsBackend) for ?gio-tls-backend?
ok 1 /tls-backend/set-default-database
# End of tls-backend tests
PASS: glib/tls-database.test
Running test: glib/option-context.test
TAP version 14
# random seed: R02Se7a14d800a46cd2581404e4af9a25ab8
1..58
# Start of option tests
ok 1 /option/basic
ok 2 /option/translate
ok 3 /option/strict-posix
# Start of help tests
ok 4 /option/help/options
ok 5 /option/help/no-options
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=697652
ok 6 /option/help/no-help-options
# Usage:
#   /usr/libexec/installed-tests/glib/option-context [OPTION?] blabla
# 
# Summary
# 
# Help Options:
#   -h, --help                                          Show help options
# 
# Application Options:
#   -t, --test=Argument to use in test (deprecated)     Test tests
#   --test2                                             Tests also
# 
# Description
# 
ok 7 /option/help/deprecated
# End of help tests
# Start of group tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=504142
ok 8 /option/group/captions
ok 9 /option/group/main
ok 10 /option/group/error-hook
ok 11 /option/group/parse
# Start of captions tests
# Start of subprocess tests
# End of subprocess tests
# End of captions tests
# End of group tests
# Start of restoration tests
ok 12 /option/restoration/int
ok 13 /option/restoration/string
ok 14 /option/restoration/boolean
# End of restoration tests
# Start of arg tests
ok 15 /option/arg/reverse-string
ok 16 /option/arg/optional-int
# Start of repetition tests
ok 17 /option/arg/repetition/int
ok 18 /option/arg/repetition/string
ok 19 /option/arg/repetition/filename
ok 20 /option/arg/repetition/double
ok 21 /option/arg/repetition/locale
ok 22 /option/arg/repetition/int64
# End of repetition tests
# Start of array tests
ok 23 /option/arg/array/string
# End of array tests
# Start of callback tests
ok 24 /option/arg/callback/string
ok 25 /option/arg/callback/count
ok 26 /option/arg/callback/optional1
ok 27 /option/arg/callback/optional2
ok 28 /option/arg/callback/optional3
ok 29 /option/arg/callback/optional4
ok 30 /option/arg/callback/optional5
ok 31 /option/arg/callback/optional6
ok 32 /option/arg/callback/optional7
ok 33 /option/arg/callback/optional8
# End of callback tests
# Start of remaining tests
ok 34 /option/arg/remaining/callback
ok 35 /option/arg/remaining/callback-false
ok 36 /option/arg/remaining/non-option
ok 37 /option/arg/remaining/separator
ok 38 /option/arg/remaining/array
# End of remaining tests
# Start of ignore tests
ok 39 /option/arg/ignore/long
ok 40 /option/arg/ignore/short
ok 41 /option/arg/ignore/arg
# End of ignore tests
# Start of rest tests
ok 42 /option/arg/rest/non-option
ok 43 /option/arg/rest/separator1
ok 44 /option/arg/rest/separator2
ok 45 /option/arg/rest/separator3
ok 46 /option/arg/rest/separator4
ok 47 /option/arg/rest/separator5
# End of rest tests
# End of arg tests
# Start of context tests
ok 48 /option/context/add
ok 49 /option/context/empty2
ok 50 /option/context/empty3
# End of context tests
# Start of bug tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=166609
ok 51 /option/bug/unknown-short
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=168008
ok 52 /option/bug/lonely-dash
ok 53 /option/bug/triple-dash
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=305576
ok 54 /option/bug/missing-arg
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=577638
ok 55 /option/bug/dash-arg
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=729563
ok 56 /option/bug/short-remaining
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=646926
ok 57 /option/bug/double-free
ok 58 /option/bug/double-zero
# End of bug tests
# End of option tests
PASS: glib/option-context.test
Running test: glib/sandbox.test
TAP version 14
# random seed: R02Sd54408e8263fc1569406d000021716a8
1..4
# Start of sandbox tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/sandbox/none/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/sandbox/none/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/sandbox/none/.dirs/system-config1:/var/volatile/tmp/sandbox/none/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/sandbox/none/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/sandbox/none/.dirs/system-data1:/var/volatile/tmp/sandbox/none/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/sandbox/none/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/sandbox/none/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/sandbox/none/.dirs/runtime
ok 1 /sandbox/none
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/sandbox/snap/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/sandbox/snap/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/sandbox/snap/.dirs/system-config1:/var/volatile/tmp/sandbox/snap/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/sandbox/snap/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/sandbox/snap/.dirs/system-data1:/var/volatile/tmp/sandbox/snap/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/sandbox/snap/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/sandbox/snap/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/sandbox/snap/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/snap/current/meta/snap.yaml
ok 2 /sandbox/snap
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/sandbox/classic-snap/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/sandbox/classic-snap/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/sandbox/classic-snap/.dirs/system-config1:/var/volatile/tmp/sandbox/classic-snap/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/sandbox/classic-snap/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/sandbox/classic-snap/.dirs/system-data1:/var/volatile/tmp/sandbox/classic-snap/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/sandbox/classic-snap/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/sandbox/classic-snap/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/sandbox/classic-snap/.dirs/runtime
# Created snap.yaml in /var/volatile/tmp/snap/current/meta/snap.yaml
ok 3 /sandbox/classic-snap
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/sandbox/flatpak/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/sandbox/flatpak/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/sandbox/flatpak/.dirs/system-config1:/var/volatile/tmp/sandbox/flatpak/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/sandbox/flatpak/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/sandbox/flatpak/.dirs/system-data1:/var/volatile/tmp/sandbox/flatpak/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/sandbox/flatpak/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/sandbox/flatpak/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/sandbox/flatpak/.dirs/runtime
# Creating .flatpak-info in /var/volatile/tmp/sandbox/flatpak/.dirs/runtime/.flatpak-info
ok 4 /sandbox/flatpak
# End of sandbox tests
PASS: glib/sandbox.test
Running test: glib/mainloop.test
TAP version 14
# random seed: R02Sa1e7edce1e23cf70ffdd0d471d726716
1..45
# Start of maincontext tests
ok 1 /maincontext/basic
# Add same-priority sources: 6
# Find each source: 0
# Remove in random order: 7
ok 2 /maincontext/nsources_same_priority
# Add different-priority sources: 7
# Find each source: 0
# Remove in random order: 12
ok 3 /maincontext/nsources_different_priority
# Add sources from threads: 219
# Remove sources from threads: 92
ok 4 /maincontext/nsources_threadpool
ok 5 /maincontext/source_finalization
# /maincontext/idle-once summary: Test g_idle_add_once() works
ok 6 /maincontext/idle-once
# /maincontext/timeout-once summary: Test g_timeout_add_once() works
ok 7 /maincontext/timeout-once
# Start of source_finalization_from_source tests
# /maincontext/source_finalization_from_source/0 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 8 /maincontext/source_finalization_from_source/0
# /maincontext/source_finalization_from_source/1 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 9 /maincontext/source_finalization_from_source/1
# /maincontext/source_finalization_from_source/2 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 10 /maincontext/source_finalization_from_source/2
# /maincontext/source_finalization_from_source/3 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 11 /maincontext/source_finalization_from_source/3
# /maincontext/source_finalization_from_source/4 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 12 /maincontext/source_finalization_from_source/4
# /maincontext/source_finalization_from_source/5 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 13 /maincontext/source_finalization_from_source/5
# /maincontext/source_finalization_from_source/6 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 14 /maincontext/source_finalization_from_source/6
# /maincontext/source_finalization_from_source/7 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 15 /maincontext/source_finalization_from_source/7
# /maincontext/source_finalization_from_source/8 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 16 /maincontext/source_finalization_from_source/8
# /maincontext/source_finalization_from_source/9 summary: Tests if freeing a GSource as part of another GSource during main context destruction works.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/1353
ok 17 /maincontext/source_finalization_from_source/9
# End of source_finalization_from_source tests
# Start of source_finalization_from_dispatch tests
# /maincontext/source_finalization_from_dispatch/0 summary: Tests if freeing a GSource as part of another GSource during main context iteration works.
ok 18 /maincontext/source_finalization_from_dispatch/0
# /maincontext/source_finalization_from_dispatch/1 summary: Tests if freeing a GSource as part of another GSource during main context iteration works.
ok 19 /maincontext/source_finalization_from_dispatch/1
# /maincontext/source_finalization_from_dispatch/2 summary: Tests if freeing a GSource as part of another GSource during main context iteration works.
ok 20 /maincontext/source_finalization_from_dispatch/2
# End of source_finalization_from_dispatch tests
# End of maincontext tests
# Start of mainloop tests
ok 21 /mainloop/basic
ok 22 /mainloop/timeouts # SKIP Not running timing heavy test
ok 23 /mainloop/priorities
ok 24 /mainloop/invoke
# slow test /mainloop/invoke executed in 0.50 secs
Executing: glib/mainloop.test
ok 25 /mainloop/child_sources
# slow test /mainloop/child_sources executed in 1.18 secs
ok 26 /mainloop/recursive_child_sources
# slow test /mainloop/recursive_child_sources executed in 2.16 secs
ok 27 /mainloop/recursive_loop_child_sources
ok 28 /mainloop/swapping_child_sources
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=701283
ok 29 /mainloop/blocked_child_sources
ok 30 /mainloop/source_time
# slow test /mainloop/source_time executed in 1.00 secs
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=687098
ok 31 /mainloop/overflow
ok 32 /mainloop/ready-time
# slow test /mainloop/ready-time executed in 0.50 secs
ok 33 /mainloop/wakeup
ok 34 /mainloop/remove-invalid
ok 35 /mainloop/unref-while-pending
ok 36 /mainloop/unix-fd
ok 37 /mainloop/unix-fd-source
ok 38 /mainloop/source-unix-fd-api
ok 39 /mainloop/wait
ok 40 /mainloop/unix-file-poll
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/1592
ok 41 /mainloop/unix-fd-priority
ok 42 /mainloop/nfds
ok 43 /mainloop/steal-fd
# Start of ownerless-polling tests
ok 44 /mainloop/ownerless-polling/attach-first
ok 45 /mainloop/ownerless-polling/pop-first
# End of ownerless-polling tests
# End of mainloop tests
PASS: glib/mainloop.test
Running test: glib/module-test-plugin.test
TAP version 14
# random seed: R02Seab3bd65e520dc032e2354ce600d4d20
1..3
# Start of module tests
ok 1 /module/basics
# /module/invalid-libtool-archive summary: Test that opening an invalid .la file fails
ok 2 /module/invalid-libtool-archive
# /module/local-binding summary: Test that binding a library's symbols locally does not add them globally
ok 3 /module/local-binding
# End of module tests
PASS: glib/module-test-plugin.test
Running test: glib/shell.test
TAP version 14
# random seed: R02S0edea89098e115a0796a422d3753393f
1..51
# Start of shell tests
# Start of cmdline tests
test cmdline: foo bar
ok 1 /shell/cmdline/0
test cmdline: foo 'bar'
ok 2 /shell/cmdline/1
test cmdline: foo "bar"
ok 3 /shell/cmdline/2
test cmdline: foo '' 'bar'
ok 4 /shell/cmdline/3
test cmdline: foo "bar"'baz'blah'foo'\''blah'"boo"
ok 5 /shell/cmdline/4
test cmdline: foo 	 	blah	foo		bar  baz
ok 6 /shell/cmdline/5
test cmdline: foo '    spaces more spaces lots of     spaces in this   '  	
ok 7 /shell/cmdline/6
test cmdline: foo \
bar
ok 8 /shell/cmdline/7
test cmdline: foo '' ''
ok 9 /shell/cmdline/8
test cmdline: foo \" la la la
ok 10 /shell/cmdline/9
test cmdline: foo \ foo woo woo\ 
ok 11 /shell/cmdline/10
test cmdline: foo "yada yada \$\""
ok 12 /shell/cmdline/11
test cmdline: foo "c:\\"
ok 13 /shell/cmdline/12
test cmdline: foo # bla bla bla
 bar
ok 14 /shell/cmdline/13
test cmdline: foo a#b
ok 15 /shell/cmdline/14
test cmdline: #foo
ok 16 /shell/cmdline/15
test cmdline: foo bar \
ok 17 /shell/cmdline/16
test cmdline: foo 'bar baz
ok 18 /shell/cmdline/17
test cmdline: foo '"bar" baz
ok 19 /shell/cmdline/18
test cmdline: 
ok 20 /shell/cmdline/19
test cmdline:   
ok 21 /shell/cmdline/20
test cmdline: # foo bar
ok 22 /shell/cmdline/21
test cmdline: foo '/bar/summer'\''09 tours.pdf'
ok 23 /shell/cmdline/22
# End of cmdline tests
# Start of quote tests
ok 24 /shell/quote/0
ok 25 /shell/quote/1
ok 26 /shell/quote/2
ok 27 /shell/quote/3
ok 28 /shell/quote/4
ok 29 /shell/quote/5
ok 30 /shell/quote/6
# End of quote tests
# Start of unquote tests
ok 31 /shell/unquote/0
ok 32 /shell/unquote/1
ok 33 /shell/unquote/2
ok 34 /shell/unquote/3
ok 35 /shell/unquote/4
ok 36 /shell/unquote/5
ok 37 /shell/unquote/6
ok 38 /shell/unquote/7
ok 39 /shell/unquote/8
ok 40 /shell/unquote/9
ok 41 /shell/unquote/10
ok 42 /shell/unquote/11
ok 43 /shell/unquote/12
ok 44 /shell/unquote/13
ok 45 /shell/unquote/14
ok 46 /shell/unquote/15
ok 47 /shell/unquote/16
ok 48 /shell/unquote/17
ok 49 /shell/unquote/18
ok 50 /shell/unquote/19
ok 51 /shell/unquote/20
# End of unquote tests
# End of shell tests
PASS: glib/shell.test
Running test: glib/param.test
TAP version 14
# random seed: R02S8646516fe1f4f7dbb3396fe702624830
1..32
# Start of param tests
ok 1 /param/value
ok 2 /param/strings
ok 3 /param/qdata
ok 4 /param/validate
ok 5 /param/convert
ok 6 /param/implement # SKIP Skipping slow /param/implement test
ok 7 /param/default
ok 8 /param/is-valid-name
# Start of invalid-name tests
# /param/invalid-name/colon summary: Test that properties cannot be created with invalid names
ok 9 /param/invalid-name/colon
# /param/invalid-name/first-char summary: Test that properties cannot be created with invalid names
ok 10 /param/invalid-name/first-char
# /param/invalid-name/empty summary: Test that properties cannot be created with invalid names
ok 11 /param/invalid-name/empty
# End of invalid-name tests
# Start of implement tests
# Start of subprocess tests
# End of subprocess tests
# End of implement tests
# End of param tests
# Start of value tests
ok 12 /value/transform
# End of value tests
# Start of paramspec tests
ok 13 /paramspec/char
ok 14 /paramspec/uchar
ok 15 /paramspec/int
ok 16 /paramspec/uint
ok 17 /paramspec/long
ok 18 /paramspec/ulong
ok 19 /paramspec/int64
ok 20 /paramspec/uint64
ok 21 /paramspec/float
ok 22 /paramspec/double
ok 23 /paramspec/unichar
ok 24 /paramspec/param
ok 25 /paramspec/null-param
ok 26 /paramspec/string
ok 27 /paramspec/override
ok 28 /paramspec/gtype
ok 29 /paramspec/variant
ok 30 /paramspec/custom
ok 31 /paramspec/pool
# Start of variant tests
ok 32 /paramspec/variant/cmp
# End of variant tests
# End of paramspec tests
PASS: glib/param.test
Running test: glib/scannerapi.test
TAP version 14
# random seed: R02Sf9998191f002804bcb1f68961e822f00
1..4
# Start of scanner tests
ok 1 /scanner/warn
ok 2 /scanner/error
ok 3 /scanner/symbols
ok 4 /scanner/tokens
# End of scanner tests
PASS: glib/scannerapi.test
Running test: glib/utils-c-17.test
TAP version 14
# random seed: R02Sb26f4371903451c2eb9fd139f654762a
1..41
# Start of utils tests
ok 1 /utils/language-names
ok 2 /utils/locale-variants
ok 3 /utils/version
ok 4 /utils/appname
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/847
# /utils/prgname-thread-safety summary: Test that threads racing to get and set the program name always receive a valid program name.
ok 5 /utils/prgname-thread-safety
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=627969
# /utils/tmpdir summary: Test that g_get_tmp_dir() returns a correct default if TMPDIR is set to the empty string
ok 6 /utils/tmpdir
ok 7 /utils/basic_bits
ok 8 /utils/bits
ok 9 /utils/swap
ok 10 /utils/find-program
ok 11 /utils/find-program-for-path
ok 12 /utils/debug
ok 13 /utils/codeset
ok 14 /utils/codeset2
ok 15 /utils/console-charset
ok 16 /utils/gettext
ok 17 /utils/username
ok 18 /utils/realname
ok 19 /utils/hostname
ok 20 /utils/xdgdirs
ok 21 /utils/specialdir
# NAME: Linux
ok 22 /utils/os-info
ok 23 /utils/clear-pointer
ok 24 /utils/clear-pointer-cast
ok 25 /utils/take-pointer
ok 26 /utils/clear-source
ok 27 /utils/misc-mem
# /utils/aligned-mem summary: Aligned memory allocator
# Alignment must not be zero
# Alignment must be a power of two
# Alignment must be a multiple of sizeof(void*)
ok 28 /utils/aligned-mem
# /utils/free-sized summary: Check that g_free_sized() works
ok 29 /utils/free-sized
ok 30 /utils/nullify
ok 31 /utils/atexit
ok 32 /utils/check-setuid
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663
ok 33 /utils/int-limits
ok 34 /utils/clear-list
ok 35 /utils/clear-slist
ok 36 /utils/steal-handle-id
# Start of specialdir tests
ok 37 /utils/specialdir/desktop
# End of specialdir tests
# Start of clear-pointer tests
ok 38 /utils/clear-pointer/side-effects
# End of clear-pointer tests
# Start of aligned-mem tests
# /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer
ok 39 /utils/aligned-mem/alignment
# /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation
ok 40 /utils/aligned-mem/zeroed
# /utils/aligned-mem/free-sized summary: Check that g_aligned_free_sized() works
ok 41 /utils/aligned-mem/free-sized
# Start of subprocess tests
# End of subprocess tests
# End of aligned-mem tests
# End of utils tests
PASS: glib/utils-c-17.test
Running test: glib/utf8-pointer.test
TAP version 14
# random seed: R02S6aa54360a7daddaa78ab4b6a01ef332f
1..3
# Start of utf8 tests
Executing: glib/utf8-pointer.test
ok 1 /utf8/offsets
# slow test /utf8/offsets executed in 0.77 secs
ok 2 /utf8/lengths
ok 3 /utf8/find
# End of utf8 tests
PASS: glib/utf8-pointer.test
Running test: glib/hostutils.test
TAP version 14
# random seed: R02S19ad65ac4f8cd88d215a6cbfe55d9651
1..3
# Start of hostutils tests
ok 1 /hostutils/to_ascii
ok 2 /hostutils/to_unicode
ok 3 /hostutils/is_ip_addr
# End of hostutils tests
PASS: glib/hostutils.test
Running test: glib/appmonitor.test
TAP version 14
# random seed: R02Sc5f148512d4a24b93adb92927be03d0d
1..1
# Start of monitor tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/monitor/app/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/monitor/app/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/monitor/app/.dirs/system-config1:/var/volatile/tmp/monitor/app/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/monitor/app/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/monitor/app/.dirs/system-data1:/var/volatile/tmp/monitor/app/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/monitor/app/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/monitor/app/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/monitor/app/.dirs/runtime
# Using data directory: /var/volatile/tmp/monitor/app/.dirs/data
ok 1 /monitor/app
# End of monitor tests
PASS: glib/appmonitor.test
Running test: glib/converter-stream.test
TAP version 14
# random seed: R02S631d33c9eb6d8049e71f2697ae875ed1
1..17
# Start of converter tests
ok 1 /converter/basics
# End of converter tests
# Start of converter-input-stream tests
ok 2 /converter-input-stream/expander
ok 3 /converter-input-stream/compressor
# Start of truncation tests
ok 4 /converter-input-stream/truncation/zlib
ok 5 /converter-input-stream/truncation/gzip
ok 6 /converter-input-stream/truncation/raw
# End of truncation tests
# Start of charset tests
ok 7 /converter-input-stream/charset/utf8->latin1
ok 8 /converter-input-stream/charset/latin1->utf8
ok 9 /converter-input-stream/charset/fallbacks
# End of charset tests
# End of converter-input-stream tests
# Start of converter-output-stream tests
# Start of roundtrip tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=619945
ok 10 /converter-output-stream/roundtrip/zlib-0
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=619945
ok 11 /converter-output-stream/roundtrip/zlib-9
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=619945
ok 12 /converter-output-stream/roundtrip/gzip-0
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=619945
ok 13 /converter-output-stream/roundtrip/gzip-9
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=619945
ok 14 /converter-output-stream/roundtrip/raw-0
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=619945
ok 15 /converter-output-stream/roundtrip/raw-9
# End of roundtrip tests
# End of converter-output-stream tests
# Start of converter-stream tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyProxyResolver) for ?gio-proxy-resolver?
# GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0x55fd8c7ea290 and GSocketClientAsyncConnectData 0x55fd8c7e70a0
# GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration
# GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded
# GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0x55fd8c40c380 for GSocketClientAsyncConnectData 0x55fd8c7e70a0
# GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt
# GLib-GIO-DEBUG: GSocketClient: TCP connection successful
# GLib-GIO-DEBUG: GSocketClient: Starting application layer connection
# GLib-GIO-DEBUG: GSocketClient: Connection successful!
ok 16 /converter-stream/pollable
ok 17 /converter-stream/leftover
# End of converter-stream tests
PASS: glib/converter-stream.test
Running test: glib/642026.test
TAP version 14
# random seed: R02S3afdf13f209a846a0d42612da1f44095
1..1
# Start of glib tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=642026
ok 1 /glib/642026
# End of glib tests
PASS: glib/642026.test
Running test: glib/utils-c-11.test
TAP version 14
# random seed: R02Sab64f0e53d22deed6e4a2b8928fa2948
1..41
# Start of utils tests
ok 1 /utils/language-names
ok 2 /utils/locale-variants
ok 3 /utils/version
ok 4 /utils/appname
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/847
# /utils/prgname-thread-safety summary: Test that threads racing to get and set the program name always receive a valid program name.
ok 5 /utils/prgname-thread-safety
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=627969
# /utils/tmpdir summary: Test that g_get_tmp_dir() returns a correct default if TMPDIR is set to the empty string
ok 6 /utils/tmpdir
ok 7 /utils/basic_bits
ok 8 /utils/bits
ok 9 /utils/swap
ok 10 /utils/find-program
ok 11 /utils/find-program-for-path
ok 12 /utils/debug
ok 13 /utils/codeset
ok 14 /utils/codeset2
ok 15 /utils/console-charset
ok 16 /utils/gettext
ok 17 /utils/username
ok 18 /utils/realname
ok 19 /utils/hostname
ok 20 /utils/xdgdirs
ok 21 /utils/specialdir
# NAME: Linux
ok 22 /utils/os-info
ok 23 /utils/clear-pointer
ok 24 /utils/clear-pointer-cast
ok 25 /utils/take-pointer
ok 26 /utils/clear-source
ok 27 /utils/misc-mem
# /utils/aligned-mem summary: Aligned memory allocator
# Alignment must not be zero
# Alignment must be a power of two
# Alignment must be a multiple of sizeof(void*)
ok 28 /utils/aligned-mem
# /utils/free-sized summary: Check that g_free_sized() works
ok 29 /utils/free-sized
ok 30 /utils/nullify
ok 31 /utils/atexit
ok 32 /utils/check-setuid
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663
ok 33 /utils/int-limits
ok 34 /utils/clear-list
ok 35 /utils/clear-slist
ok 36 /utils/steal-handle-id
# Start of specialdir tests
ok 37 /utils/specialdir/desktop
# End of specialdir tests
# Start of clear-pointer tests
ok 38 /utils/clear-pointer/side-effects
# End of clear-pointer tests
# Start of aligned-mem tests
# /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer
ok 39 /utils/aligned-mem/alignment
# /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation
ok 40 /utils/aligned-mem/zeroed
# /utils/aligned-mem/free-sized summary: Check that g_aligned_free_sized() works
ok 41 /utils/aligned-mem/free-sized
# Start of subprocess tests
# End of subprocess tests
# End of aligned-mem tests
# End of utils tests
PASS: glib/utils-c-11.test
Running test: glib/network-monitor.test
TAP version 14
# random seed: R02S980528d0a36c9f93c1ecfecc3b48b0bb
1..4
# Start of network-monitor tests
# GLib-GIO-DEBUG: Failed to initialize portal (GNetworkMonitorPortal) for gio-network-monitor: Not using portals
# GLib-GIO-DEBUG: Failed to initialize networkmanager (GNetworkMonitorNM) for gio-network-monitor: NetworkManager not running
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation netlink (GNetworkMonitorNetlink) for ?gio-network-monitor?
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyProxyResolver) for ?gio-proxy-resolver?
ok 1 /network-monitor/default
ok 2 /network-monitor/remove_default
ok 3 /network-monitor/add_networks
ok 4 /network-monitor/remove_networks
# End of network-monitor tests
PASS: glib/network-monitor.test
Running test: glib/object-info.test
TAP version 14
# random seed: R02Sc80bb67d3964c7f72a8ff2f56eeda817
1..2
# Start of object-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/system-config1:/var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/system-data1:/var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/object-info/find-method-using-interfaces/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 1 /object-info/find-method-using-interfaces
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/system-config1:/var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/system-data1:/var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/object-info/find-vfunc-using-interfaces/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
ok 2 /object-info/find-vfunc-using-interfaces
# End of object-info tests
PASS: glib/object-info.test
Running test: glib/registered-type-info.test
TAP version 14
# random seed: R02S60cb199639eae60f82396480b4a0478a
1..1
# Start of registered-type-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/registered-type-info/boxed/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/registered-type-info/boxed/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/registered-type-info/boxed/.dirs/system-config1:/var/volatile/tmp/registered-type-info/boxed/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/registered-type-info/boxed/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/registered-type-info/boxed/.dirs/system-data1:/var/volatile/tmp/registered-type-info/boxed/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/registered-type-info/boxed/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/registered-type-info/boxed/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/registered-type-info/boxed/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /registered-type-info/boxed summary: Test various boxed and non-boxed types for GIRegisteredTypeInfo
# Expecting CClosure to not be boxed
# Expecting TypeCValue to not be boxed
# Expecting InitiallyUnownedClass to not be boxed
# Expecting BookmarkFile to be boxed
# Expecting Closure to be boxed
# Expecting Object to not be boxed
ok 1 /registered-type-info/boxed
# End of registered-type-info tests
PASS: glib/registered-type-info.test
Running test: glib/portal-support-env-var.test
TAP version 14
# random seed: R02S3efb92bde368fc63aab9092c048524d1
1..1
# Start of portal-support tests
ok 1 /portal-support/env-var
# End of portal-support tests
PASS: glib/portal-support-env-var.test
Running test: glib/qdata.test
TAP version 14
# random seed: R02S48c0416a7c6f5fb1205937df94080f71
1..2
# Start of qdata tests
ok 1 /qdata/threaded
ok 2 /qdata/dup
# End of qdata tests
PASS: glib/qdata.test
Running test: glib/uri.test
TAP version 14
# random seed: R02S3c24c73500179d1f14a0fb2c62d6ca38
1..24
# Start of uri tests
ok 1 /uri/file-to-uri
ok 2 /uri/file-from-uri
ok 3 /uri/file-roundtrip
ok 4 /uri/list
# Test 0: %2Babc %4F
# Test 1: %2Babc %4F
# Test 2: %00abc %4F
# Test 3: /cursors/none.png
# Test 4: /cursors%2fbad-subdir/none.png
# Test 5: %0
# Test 6: %ra
# Test 7: %2r
# Test 8: Timm B?der
# Test 9: (null)
ok 5 /uri/unescape-string
ok 6 /uri/unescape-segment
# Test 0: abcdefgABCDEFG._~
# Test 1: :+ \\?#
# Test 2: a+b:c
# Test 3: a+b:c\303\234
# Test 4: \374;\322
# Test 5: \303\261\303(
ok 7 /uri/escape-string
ok 8 /uri/escape-bytes
ok 9 /uri/scheme
ok 10 /uri/build
ok 11 /uri/split
ok 12 /uri/is_valid
ok 13 /uri/to-string
ok 14 /uri/join
# /uri/join-split-round-trip summary: Test that joining different URI components survives a round trip
# Combination 0
# Combination 1
# Combination 2
# Combination 3
# Combination 4
# Combination 5
# Combination 6
# Combination 7
# Combination 8
# Combination 9
# Combination 10
# Combination 11
# Combination 12
# Combination 13
# Combination 14
# Combination 15
# Combination 16
# Combination 17
# Combination 18
# Combination 19
# Combination 20
# Combination 21
# Combination 22
# Combination 23
# Combination 24
# Combination 25
# Combination 26
# Combination 27
# Combination 28
# Combination 29
# Combination 30
# Combination 31
# Combination 32
# Combination 33
# Combination 34
# Combination 35
# Combination 36
# Combination 37
# Combination 38
# Combination 39
# Combination 40
# Combination 41
# Combination 42
# Combination 43
# Combination 44
# Combination 45
# Combination 46
# Combination 47
# Combination 48
# Combination 49
# Combination 50
# Combination 51
# Combination 52
# Combination 53
# Combination 54
# Combination 55
# Combination 56
# Combination 57
# Combination 58
# Combination 59
# Combination 60
# Combination 61
# Combination 62
# Combination 63
# Combination 64
# Combination 65
# Combination 66
# Combination 67
# Combination 68
# Combination 69
# Combination 70
# Combination 71
# Combination 72
# Combination 73
# Combination 74
# Combination 75
# Combination 76
# Combination 77
# Combination 78
# Combination 79
# Combination 80
# Combination 81
# Combination 82
# Combination 83
# Combination 84
# Combination 85
# Combination 86
# Combination 87
# Combination 88
# Combination 89
# Combination 90
# Combination 91
# Combination 92
# Combination 93
# Combination 94
# Combination 95
# Combination 96
# Combination 97
# Combination 98
# Combination 99
# Combination 100
# Combination 101
# Combination 102
# Combination 103
# Combination 104
# Combination 105
# Combination 106
# Combination 107
# Combination 108
# Combination 109
# Combination 110
# Combination 111
# Combination 112
# Combination 113
# Combination 114
# Combination 115
# Combination 116
# Combination 117
# Combination 118
# Combination 119
# Combination 120
# Combination 121
# Combination 122
# Combination 123
# Combination 124
# Combination 125
# Combination 126
# Combination 127
# Combination 128
# Combination 129
# Combination 130
# Combination 131
# Combination 132
# Combination 133
# Combination 134
# Combination 135
# Combination 136
# Combination 137
# Combination 138
# Combination 139
# Combination 140
# Combination 141
# Combination 142
# Combination 143
# Combination 144
# Combination 145
# Combination 146
# Combination 147
# Combination 148
# Combination 149
# Combination 150
# Combination 151
# Combination 152
# Combination 153
# Combination 154
# Combination 155
# Combination 156
# Combination 157
# Combination 158
# Combination 159
# Combination 160
# Combination 161
# Combination 162
# Combination 163
# Combination 164
# Combination 165
# Combination 166
# Combination 167
# Combination 168
# Combination 169
# Combination 170
# Combination 171
# Combination 172
# Combination 173
# Combination 174
# Combination 175
# Combination 176
# Combination 177
# Combination 178
# Combination 179
# Combination 180
# Combination 181
# Combination 182
# Combination 183
# Combination 184
# Combination 185
# Combination 186
# Combination 187
# Combination 188
# Combination 189
# Combination 190
# Combination 191
# Combination 192
# Combination 193
# Combination 194
# Combination 195
# Combination 196
# Combination 197
# Combination 198
# Combination 199
# Combination 200
# Combination 201
# Combination 202
# Combination 203
# Combination 204
# Combination 205
# Combination 206
# Combination 207
# Combination 208
# Combination 209
# Combination 210
# Combination 211
# Combination 212
# Combination 213
# Combination 214
# Combination 215
# Combination 216
# Combination 217
# Combination 218
# Combination 219
# Combination 220
# Combination 221
# Combination 222
# Combination 223
# Combination 224
# Combination 225
# Combination 226
# Combination 227
# Combination 228
# Combination 229
# Combination 230
# Combination 231
# Combination 232
# Combination 233
# Combination 234
# Combination 235
# Combination 236
# Combination 237
# Combination 238
# Combination 239
# Combination 240
# Combination 241
# Combination 242
# Combination 243
# Combination 244
# Combination 245
# Combination 246
# Combination 247
# Combination 248
# Combination 249
# Combination 250
# Combination 251
# Combination 252
# Combination 253
# Combination 254
# Combination 255
ok 15 /uri/join-split-round-trip
ok 16 /uri/normalize
# Start of unescape-bytes tests
# Test 0: %00%00
# Test 1: /cursors/none.png
# Test 2: /cursors%2fbad-subdir/none.png
# Test 3: %%
# Test 4: %
ok 17 /uri/unescape-bytes/nul-terminated
# Test 0: %00%00
# Test 1: /cursors/none.png
# Test 2: /cursors%2fbad-subdir/none.png
# Test 3: %%
# Test 4: %
ok 18 /uri/unescape-bytes/length
# End of unescape-bytes tests
# Start of parsing tests
# Test 0: foo:
# Test 1: file:/dev/null
# Test 2: file:///dev/null
# Test 3: ftp://user@host/path
# Test 4: ftp://user@host:9999/path
# Test 5: ftp://user:password@host/path
# Test 6: ftp://user:password@host:9999/path
# Test 7: ftp://user:password@host
# Test 8: http://us%65r@host
# Test 9: http://us%40r@host
# Test 10: http://us%3ar@host
# Test 11: http://us%2fr@host
# Test 12: http://us%3fr@host
# Test 13: http://host?query
# Test 14: http://host/path?query=http%3A%2F%2Fhost%2Fpath%3Fchildparam%3Dchildvalue&param=value
# Test 15: http://control-chars/%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F
# Test 16: http://space/%20
# Test 17: http://delims/%3C%3E%23%25%22
# Test 18: http://unwise-chars/%7B%7D%7C%5C%5E%5B%5D%60
# Test 19: http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
# Test 20: http://[1080:0:0:0:8:800:200C:417A]/index.html
# Test 21: http://[3ffe:2a00:100:7031::1]
# Test 22: http://[1080::8:800:200C:417A]/foo
# Test 23: http://[::192.9.5.5]/ipng
# Test 24: http://[::FFFF:129.144.52.38]:80/index.html
# Test 25: http://[2010:836B:4179::836B:4179]
# Test 26: http://host/path with spaces
# Test 27:   http://host/path
# Test 28: http://host/path  
# Test 29: http://host  
# Test 30: http://host:999  
# Test 31: http://host/pa
# th
# Test 32: http:
# //host/path
# Test 33: http://	host/path
# Test 34: http://host/path?
# Test 35: http://host/path#
# Test 36: http://host/path%
# Test 37: http://h%ost/path
# Test 38: http://host/path%%
# Test 39: http://host/path%%%
# Test 40: http://host/path%/x/
# Test 41: http://host/path%0x/
# Test 42: http://host/path%ax
# Test 43: http://host/p?th/
# Test 44: HTTP:////////////////
# Test 45: http://@host
# Test 46: http://:@host
# Test 47: scheme://foo%3Abar._webdav._tcp.local
# Test 48: http://example.com/..
# Test 49: foo0://host/path
# Test 50: f0.o://host/path
# Test 51: http++://host/path
# Test 52: http-ish://host/path
# Test 53: http://[fe80::dead:beef%]/
# Test 54: http://[fe80::dead:beef%em1]/
# Test 55: http://[fe80::dead:beef%em1]/
# Test 56: http://[fe80::dead:beef%25em1]/
# Test 57: http://[fe80::dead:beef%25em1%20]/
# Test 58: http://[fe80::dead:beef%25em%31]/
# Test 59: http://[fe80::dead:beef%10]/
# Test 60: http://[fe80::dead:beef%10]/
# Test 61: http://[fe80::dead:beef%25]/
# Test 62: http://[fe80::dead:beef%25]/
# Test 63: http://[192.168.0.1%25em1]/
# Test 64: http://[fe80::dead:beef%2em1]/
# Test 65: http://[fe80::dead:beef%2em1]/
# Test 66: http://[fe80::dead:beef%25em1%00]/
# Test 67: http://[fe80::dead:beef%25em1%00]/
# Test 68: http://xn--mixed-?p/
# Test 69: data:.///
# Test 70: data:/.//
ok 19 /uri/parsing/absolute
ok 20 /uri/parsing/relative
# End of parsing tests
# Start of iter-params tests
# URI 0: p1=foo&p2=bar;p3=baz
# URI 1: p1=foo&p2=bar
# URI 2: p1=foo&&P1=bar
# URI 3: %00=foo
# URI 4: p1=%00
# URI 5: p1=foo&p1=bar
# URI 6: p1=foo&P1=bar
# URI 7: =%
# URI 8: =
# URI 9: foo
# URI 10: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 11: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 12: token=exp=123~acl=/QualityLevels(*~hmac=0cb
ok 21 /uri/iter-params/nul-terminated
# URI 0: p1=foo&p2=bar;p3=baz
# URI 1: p1=foo&p2=bar
# URI 2: p1=foo&&P1=bar
# URI 3: %00=foo
# URI 4: p1=%00
# URI 5: p1=foo&p1=bar
# URI 6: p1=foo&P1=bar
# URI 7: =%
# URI 8: =
# URI 9: foo
# URI 10: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 11: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 12: token=exp=123~acl=/QualityLevels(*~hmac=0cb
ok 22 /uri/iter-params/length
# End of iter-params tests
# Start of parse-params tests
# URI 0: p1=foo&p2=bar;p3=baz
# URI 1: p1=foo&p2=bar
# URI 2: p1=foo&&P1=bar
# URI 3: %00=foo
# URI 4: p1=%00
# URI 5: p1=foo&p1=bar
# URI 6: p1=foo&P1=bar
# URI 7: =%
# URI 8: =
# URI 9: foo
# URI 10: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 11: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 12: token=exp=123~acl=/QualityLevels(*~hmac=0cb
ok 23 /uri/parse-params/nul-terminated
# URI 0: p1=foo&p2=bar;p3=baz
# URI 1: p1=foo&p2=bar
# URI 2: p1=foo&&P1=bar
# URI 3: %00=foo
# URI 4: p1=%00
# URI 5: p1=foo&p1=bar
# URI 6: p1=foo&P1=bar
# URI 7: =%
# URI 8: =
# URI 9: foo
# URI 10: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 11: foo=bar+%26+baz&saisons=%C3%89t%C3%A9%2Bhiver
# URI 12: token=exp=123~acl=/QualityLevels(*~hmac=0cb
ok 24 /uri/parse-params/length
# End of parse-params tests
# End of uri tests
PASS: glib/uri.test
Running test: glib/cond.test
TAP version 14
# random seed: R02Sa4cb4d6f6684b9a13660baf5d2540901
1..4
# Start of thread tests
ok 1 /thread/cond1
ok 2 /thread/cond2
# Start of cond tests
ok 3 /thread/cond/wait-until
# slow test /thread/cond/wait-until executed in 1.02 secs
# Start of wait-until tests
# /thread/cond/wait-until/contended-and-interrupted summary: Check proper handling of errno in g_cond_wait_until with a contended mutex
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/957
ok 4 /thread/cond/wait-until/contended-and-interrupted
# slow test /thread/cond/wait-until/contended-and-interrupted executed in 1.10 secs
# End of wait-until tests
# End of cond tests
# End of thread tests
PASS: glib/cond.test
Running test: glib/timeout.test
TAP version 14
# random seed: R02Sc2b9541b5b4a0519dd21c96b934f14b0
1..4
# Start of timeout tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=642052
Executing: glib/timeout.test
ok 1 /timeout/seconds
# slow test /timeout/seconds executed in 2.10 secs
ok 2 /timeout/seconds-once
# slow test /timeout/seconds-once executed in 2.10 secs
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1600
ok 3 /timeout/weeks-overflow
# slow test /timeout/weeks-overflow executed in 2.10 secs
ok 4 /timeout/far-future-ready-time
# End of timeout tests
PASS: glib/timeout.test
Running test: glib/spawn-multithreaded.test
TAP version 14
# random seed: R02S34461fdd7e48aa5de452d04133a1a67f
1..4
# Start of gthread tests
Executing: glib/spawn-multithreaded.test
# Child 4435 (ttl 1) exited, status 0
# Child 4436 (ttl 2) exited, status 0
ok 1 /gthread/spawn-childs
# slow test /gthread/spawn-childs executed in 2.00 secs
# Created pid: 4440 (ttl 1)
# Created pid: 4441 (ttl 2)
# Child 4440 (ttl 1) exited, status 0
# Child 4441 (ttl 2) exited, status 0
ok 2 /gthread/spawn-childs-threads
# slow test /gthread/spawn-childs-threads executed in 2.00 secs
ok 3 /gthread/spawn-sync
ok 4 /gthread/spawn-async
# End of gthread tests
PASS: glib/spawn-multithreaded.test
Running test: glib/testing-nonfatal.test
TAP version 14
# random seed: R02Saaf72e998681ff65f120e10465ba19a2
**
GLib:ERROR:/usr/src/debug/glib-2.0/2.84.0/glib/tests/testing-nonfatal.c:26:main: assertion failed ("We can survive this!" == "Or maybe not?"): ("We can survive this!" == "Or maybe not?")
# GLib:ERROR:/usr/src/debug/glib-2.0/2.84.0/glib/tests/testing-nonfatal.c:26:main: assertion failed ("We can survive this!" == "Or maybe not?"): ("We can survive this!" == "Or maybe not?")
PASS: glib/testing-nonfatal.test
Running test: glib/markup-parse.test
TAP version 14
# random seed: R02S746670fc64dbdcf428d00dab41bbb79e
1..71
# Start of markup tests
# Start of parse tests
ok 1 /markup/parse/fail-35.gmarkup
ok 2 /markup/parse/valid-4.gmarkup
ok 3 /markup/parse/fail-17.gmarkup
ok 4 /markup/parse/valid-9.gmarkup
ok 5 /markup/parse/fail-26.gmarkup
ok 6 /markup/parse/fail-7.gmarkup
ok 7 /markup/parse/valid-5.gmarkup
ok 8 /markup/parse/fail-4.gmarkup
ok 9 /markup/parse/fail-36.gmarkup
ok 10 /markup/parse/fail-48.gmarkup
ok 11 /markup/parse/fail-53.gmarkup
ok 12 /markup/parse/valid-1.gmarkup
ok 13 /markup/parse/fail-49.gmarkup
ok 14 /markup/parse/fail-20.gmarkup
ok 15 /markup/parse/valid-16.gmarkup
ok 16 /markup/parse/fail-3.gmarkup
ok 17 /markup/parse/valid-2.gmarkup
ok 18 /markup/parse/fail-25.gmarkup
ok 19 /markup/parse/fail-54.gmarkup
ok 20 /markup/parse/fail-47.gmarkup
ok 21 /markup/parse/fail-10.gmarkup
ok 22 /markup/parse/fail-34.gmarkup
ok 23 /markup/parse/fail-45.gmarkup
ok 24 /markup/parse/fail-19.gmarkup
ok 25 /markup/parse/valid-12.gmarkup
ok 26 /markup/parse/fail-44.gmarkup
ok 27 /markup/parse/fail-28.gmarkup
ok 28 /markup/parse/fail-2.gmarkup
ok 29 /markup/parse/fail-14.gmarkup
ok 30 /markup/parse/fail-21.gmarkup
ok 31 /markup/parse/fail-39.gmarkup
ok 32 /markup/parse/fail-6.gmarkup
ok 33 /markup/parse/fail-15.gmarkup
ok 34 /markup/parse/valid-14.gmarkup
ok 35 /markup/parse/fail-50.gmarkup
ok 36 /markup/parse/valid-15.gmarkup
ok 37 /markup/parse/valid-3.gmarkup
ok 38 /markup/parse/valid-10.gmarkup
ok 39 /markup/parse/fail-41.gmarkup
ok 40 /markup/parse/valid-8.gmarkup
ok 41 /markup/parse/fail-12.gmarkup
ok 42 /markup/parse/fail-42.gmarkup
ok 43 /markup/parse/fail-31.gmarkup
ok 44 /markup/parse/valid-13.gmarkup
ok 45 /markup/parse/fail-9.gmarkup
ok 46 /markup/parse/fail-30.gmarkup
ok 47 /markup/parse/fail-1.gmarkup
ok 48 /markup/parse/fail-23.gmarkup
ok 49 /markup/parse/fail-37.gmarkup
ok 50 /markup/parse/fail-22.gmarkup
ok 51 /markup/parse/fail-33.gmarkup
ok 52 /markup/parse/valid-7.gmarkup
ok 53 /markup/parse/fail-32.gmarkup
ok 54 /markup/parse/valid-6.gmarkup
ok 55 /markup/parse/fail-8.gmarkup
ok 56 /markup/parse/fail-24.gmarkup
ok 57 /markup/parse/fail-27.gmarkup
ok 58 /markup/parse/fail-40.gmarkup
ok 59 /markup/parse/fail-43.gmarkup
ok 60 /markup/parse/fail-46.gmarkup
ok 61 /markup/parse/fail-13.gmarkup
ok 62 /markup/parse/fail-11.gmarkup
ok 63 /markup/parse/fail-16.gmarkup
ok 64 /markup/parse/fail-29.gmarkup
ok 65 /markup/parse/fail-18.gmarkup
ok 66 /markup/parse/valid-11.gmarkup
ok 67 /markup/parse/valid-17.gmarkup
ok 68 /markup/parse/fail-38.gmarkup
ok 69 /markup/parse/fail-5.gmarkup
ok 70 /markup/parse/fail-51.gmarkup
ok 71 /markup/parse/fail-52.gmarkup
# End of parse tests
# End of markup tests
PASS: glib/markup-parse.test
Running test: glib/relation.test
TAP version 14
# random seed: R02S02b1ba41f4ba4710d5f77cbb46c6c762
1..1
# Start of glib tests
ok 1 /glib/relation
# End of glib tests
PASS: glib/relation.test
Running test: glib/utils.test
TAP version 14
# random seed: R02Sbe2a69203a31e4a1667eb3553f788eb8
1..41
# Start of utils tests
ok 1 /utils/language-names
ok 2 /utils/locale-variants
ok 3 /utils/version
ok 4 /utils/appname
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/847
# /utils/prgname-thread-safety summary: Test that threads racing to get and set the program name always receive a valid program name.
ok 5 /utils/prgname-thread-safety
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=627969
# /utils/tmpdir summary: Test that g_get_tmp_dir() returns a correct default if TMPDIR is set to the empty string
ok 6 /utils/tmpdir
ok 7 /utils/basic_bits
ok 8 /utils/bits
ok 9 /utils/swap
ok 10 /utils/find-program
ok 11 /utils/find-program-for-path
ok 12 /utils/debug
ok 13 /utils/codeset
ok 14 /utils/codeset2
ok 15 /utils/console-charset
ok 16 /utils/gettext
ok 17 /utils/username
ok 18 /utils/realname
ok 19 /utils/hostname
ok 20 /utils/xdgdirs
ok 21 /utils/specialdir
# NAME: Linux
ok 22 /utils/os-info
ok 23 /utils/clear-pointer
ok 24 /utils/clear-pointer-cast
ok 25 /utils/take-pointer
ok 26 /utils/clear-source
ok 27 /utils/misc-mem
# /utils/aligned-mem summary: Aligned memory allocator
# Alignment must not be zero
# Alignment must be a power of two
# Alignment must be a multiple of sizeof(void*)
ok 28 /utils/aligned-mem
# /utils/free-sized summary: Check that g_free_sized() works
ok 29 /utils/free-sized
ok 30 /utils/nullify
ok 31 /utils/atexit
ok 32 /utils/check-setuid
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663
ok 33 /utils/int-limits
ok 34 /utils/clear-list
ok 35 /utils/clear-slist
ok 36 /utils/steal-handle-id
# Start of specialdir tests
ok 37 /utils/specialdir/desktop
# End of specialdir tests
# Start of clear-pointer tests
ok 38 /utils/clear-pointer/side-effects
# End of clear-pointer tests
# Start of aligned-mem tests
# /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer
ok 39 /utils/aligned-mem/alignment
# /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation
ok 40 /utils/aligned-mem/zeroed
# /utils/aligned-mem/free-sized summary: Check that g_aligned_free_sized() works
ok 41 /utils/aligned-mem/free-sized
# Start of subprocess tests
# End of subprocess tests
# End of aligned-mem tests
# End of utils tests
PASS: glib/utils.test
Running test: glib/mappedfile.test
TAP version 14
# random seed: R02S57ae2174b493aa5fa79aefc09ee0c2e4
1..7
# Start of mappedfile tests
ok 1 /mappedfile/basic
ok 2 /mappedfile/empty
ok 3 /mappedfile/device
ok 4 /mappedfile/nonexisting
ok 5 /mappedfile/writable
ok 6 /mappedfile/writable_fd
ok 7 /mappedfile/gbytes
# End of mappedfile tests
PASS: glib/mappedfile.test
Running test: glib/readwrite.test
TAP version 14
# random seed: R02S915031d2a9154a75526b839bb31406c6
1..3
# Start of readwrite tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /readwrite/test_g_file_open_readwrite
ok 2 /readwrite/test_g_file_create_readwrite
ok 3 /readwrite/test_g_file_replace_readwrite
# End of readwrite tests
PASS: glib/readwrite.test
Running test: glib/signalgroup.test
TAP version 14
# random seed: R02S2648f2e8baf60672337e9d96221d3554
1..9
# Start of GObject tests
# Start of SignalGroup tests
ok 1 /GObject/SignalGroup/invalid
ok 2 /GObject/SignalGroup/simple
ok 3 /GObject/SignalGroup/changing-target
ok 4 /GObject/SignalGroup/blocking
ok 5 /GObject/SignalGroup/weak-ref-target
ok 6 /GObject/SignalGroup/connect-object
ok 7 /GObject/SignalGroup/signal-parsing
ok 8 /GObject/SignalGroup/properties
ok 9 /GObject/SignalGroup/interface
# Start of signal-parsing tests
# End of signal-parsing tests
# End of SignalGroup tests
# End of GObject tests
PASS: glib/signalgroup.test
Running test: glib/642026-ec.test
TAP version 14
# random seed: R02Sd5efbee5524b89f264f3d0bac680e086
1..1
# Start of glib tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=642026
ok 1 /glib/642026
# End of glib tests
PASS: glib/642026-ec.test
Running test: glib/repository.test
TAP version 14
# random seed: R02S5e4989c72a00d77b14c884812dd618eb
1..23
# Start of repository tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/basic/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/basic/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/basic/.dirs/system-config1:/var/volatile/tmp/repository/basic/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/basic/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/basic/.dirs/system-data1:/var/volatile/tmp/repository/basic/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/basic/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/basic/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/basic/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/basic summary: Test basic opening of a repository and requiring a typelib
ok 1 /repository/basic
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/info/.dirs/system-config1:/var/volatile/tmp/repository/info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/info/.dirs/system-data1:/var/volatile/tmp/repository/info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/info summary: Test retrieving some basic info blobs from a typelib
ok 2 /repository/info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/dependencies/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/dependencies/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/dependencies/.dirs/system-config1:/var/volatile/tmp/repository/dependencies/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/dependencies/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/dependencies/.dirs/system-data1:/var/volatile/tmp/repository/dependencies/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/dependencies/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/dependencies/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/dependencies/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/dependencies summary: Test ensures namespace dependencies are correctly exposed
ok 3 /repository/dependencies
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/arg-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/arg-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/arg-info/.dirs/system-config1:/var/volatile/tmp/repository/arg-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/arg-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/arg-info/.dirs/system-data1:/var/volatile/tmp/repository/arg-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/arg-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/arg-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/arg-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/arg-info summary: Test retrieving GIArgInfos from a typelib
ok 4 /repository/arg-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/callable-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/callable-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/callable-info/.dirs/system-config1:/var/volatile/tmp/repository/callable-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/callable-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/callable-info/.dirs/system-data1:/var/volatile/tmp/repository/callable-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/callable-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/callable-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/callable-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/callable-info summary: Test retrieving GICallableInfos from a typelib
ok 5 /repository/callable-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/callback-info/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/callback-info/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/callback-info/.dirs/system-config1:/var/volatile/tmp/repository/callback-info/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/callback-info/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/callback-info/.dirs/system-data1:/var/volatile/tmp/repository/callback-info/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/callback-info/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/callback-info/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/callback-info/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/callback-info summary: Test retrieving GICallbackInfos from a typelib
ok 6 /repository/callback-info
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/char-types/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/char-types/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/char-types/.dirs/system-config1:/var/volatile/tmp/repository/char-types/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/char-types/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/char-types/.dirs/system-data1:/var/volatile/tmp/repository/char-types/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/char-types/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/char-types/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/char-types/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/char-types summary: Test that signed and unsigned char GITypeInfo have GITypeTag of INT8 and UINT8 respectively
ok 7 /repository/char-types
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/constructor-return-type/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/constructor-return-type/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/constructor-return-type/.dirs/system-config1:/var/volatile/tmp/repository/constructor-return-type/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/constructor-return-type/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/constructor-return-type/.dirs/system-data1:/var/volatile/tmp/repository/constructor-return-type/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/constructor-return-type/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/constructor-return-type/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/constructor-return-type/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/constructor-return-type summary: Test the return type of a constructor, g_object_newv()
ok 8 /repository/constructor-return-type
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/system-config1:/var/volatile/tmp/repository/enum-info-c-identifier/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/system-data1:/var/volatile/tmp/repository/enum-info-c-identifier/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/enum-info-c-identifier/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/enum-info-c-identifier summary: Test that every enum member has a C identifier
ok 9 /repository/enum-info-c-identifier
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/system-config1:/var/volatile/tmp/repository/enum-info-static-methods/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/system-data1:/var/volatile/tmp/repository/enum-info-static-methods/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/enum-info-static-methods/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/enum-info-static-methods summary: Test an enum with methods
ok 10 /repository/enum-info-static-methods
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/error-quark/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/error-quark/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/error-quark/.dirs/system-config1:/var/volatile/tmp/repository/error-quark/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/error-quark/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/error-quark/.dirs/system-data1:/var/volatile/tmp/repository/error-quark/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/error-quark/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/error-quark/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/error-quark/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/error-quark summary: Test finding an error quark by error domain
ok 11 /repository/error-quark
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/system-config1:/var/volatile/tmp/repository/flags-info-c-identifier/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/system-data1:/var/volatile/tmp/repository/flags-info-c-identifier/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/flags-info-c-identifier/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/flags-info-c-identifier summary: Test that every flags member has a C identifier
ok 12 /repository/flags-info-c-identifier
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/system-config1:/var/volatile/tmp/repository/fundamental-ref-func/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/system-data1:/var/volatile/tmp/repository/fundamental-ref-func/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/fundamental-ref-func/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/fundamental-ref-func summary: Test getting the ref func of a fundamental type
ok 13 /repository/fundamental-ref-func
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/system-config1:/var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/system-data1:/var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/instance-method-ownership-transfer/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/instance-method-ownership-transfer summary: Test two methods of the same object having opposite ownership transfer of the instance parameter
ok 14 /repository/instance-method-ownership-transfer
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/system-config1:/var/volatile/tmp/repository/object-gtype-interfaces/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/system-data1:/var/volatile/tmp/repository/object-gtype-interfaces/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/object-gtype-interfaces/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/object-gtype-interfaces summary: Test gi_repository_get_object_gtype_interfaces()
ok 15 /repository/object-gtype-interfaces
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/system-config1:/var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/system-data1:/var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/signal-info-with-array-length-arg/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/signal-info-with-array-length-arg summary: Test finding the associated array length argument of an array parameter of a signal
ok 16 /repository/signal-info-with-array-length-arg
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/type-info-name/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/type-info-name/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/type-info-name/.dirs/system-config1:/var/volatile/tmp/repository/type-info-name/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/type-info-name/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/type-info-name/.dirs/system-data1:/var/volatile/tmp/repository/type-info-name/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/type-info-name/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/type-info-name/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/type-info-name/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/type-info-name summary: Test that gi_base_info_get_name() returns null for GITypeInfo
# Bug Reference: https://gitlab.gnome.org/GNOME/gobject-introspection/issues/96
ok 17 /repository/type-info-name
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/system-config1:/var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/system-data1:/var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/vfunc-info-with-no-invoker/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/vfunc-info-with-no-invoker summary: Test vfunc with no known invoker on object, such as GObject.dispose
ok 18 /repository/vfunc-info-with-no-invoker
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/system-config1:/var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/system-data1:/var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-interface/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/vfunc-info-with-invoker-on-interface summary: Test vfunc with invoker on interface, such as GFile.read_async
ok 19 /repository/vfunc-info-with-invoker-on-interface
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/system-config1:/var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/system-data1:/var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/vfunc-info-with-invoker-on-object/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/vfunc-info-with-invoker-on-object summary: Test vfunc with invoker on object, such as GAppLaunchContext.get_display
ok 20 /repository/vfunc-info-with-invoker-on-object
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/find-by-gtype/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/find-by-gtype/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/find-by-gtype/.dirs/system-config1:/var/volatile/tmp/repository/find-by-gtype/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/find-by-gtype/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/find-by-gtype/.dirs/system-data1:/var/volatile/tmp/repository/find-by-gtype/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/find-by-gtype/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/find-by-gtype/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/find-by-gtype/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/find-by-gtype summary: Test finding a GType
ok 21 /repository/find-by-gtype
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/loaded-namespaces/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/loaded-namespaces/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/loaded-namespaces/.dirs/system-config1:/var/volatile/tmp/repository/loaded-namespaces/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/loaded-namespaces/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/loaded-namespaces/.dirs/system-data1:/var/volatile/tmp/repository/loaded-namespaces/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/loaded-namespaces/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/loaded-namespaces/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/loaded-namespaces/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/loaded-namespaces summary: Test listing loaded namespaces
ok 22 /repository/loaded-namespaces
# Start of base-info tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/base-info/clear/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/base-info/clear/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/base-info/clear/.dirs/system-config1:/var/volatile/tmp/repository/base-info/clear/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/base-info/clear/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/base-info/clear/.dirs/system-data1:/var/volatile/tmp/repository/base-info/clear/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/base-info/clear/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/base-info/clear/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/base-info/clear/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /repository/base-info/clear summary: Test calling gi_base_info_clear() on a zero-filled struct
ok 23 /repository/base-info/clear
# End of base-info tests
# End of repository tests
PASS: glib/repository.test
Running test: glib/atomic-c-99.test
TAP version 14
# random seed: R02Sb66d13b052295628f8a25d83326fb760
1..2
# Start of atomic tests
ok 1 /atomic/types
ok 2 /atomic/threaded
# End of atomic tests
PASS: glib/atomic-c-99.test
Running test: glib/tls-bindings.test
TAP version 14
# random seed: R02Se00abad36f9544cd73a0a6ca48c0aa43
1..2
# Start of tls-connection tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation test (GTestTlsBackend) for ?gio-tls-backend?
ok 1 /tls-connection/get-tls-channel-binding
ok 2 /tls-connection/get-dtls-channel-binding
# End of tls-connection tests
PASS: glib/tls-bindings.test
Running test: glib/basics-gobject.test
TAP version 14
# random seed: R02S458b15ec30ae9beafb483fcbb1b05df0
1..1
# Start of gobject tests
# private data during initialization: 54321 == 54321
# MAIN: emit test-signal:
# ::test_signal default_handler called
# ::test_signal default_handler called
# ::test_signal default_handler called
# signal return: "<default_handler><default_handler><default_handler>"
# MAIN: call iface print-string on test and derived object:
# Iface-FOO: "iface-string-from-test-type" from 0x56513c1cfaa0
# Iface-BAR: "iface-string-from-derived-type" from 0x56513c1cf8e0
# chaining: 
# Iface-FOO: "iface-string-from-derived-type" from 0x56513c1cf8e0
# private data after initialization: 54321 == 54321
ok 1 /gobject/basics
# End of gobject tests
PASS: glib/basics-gobject.test
Running test: glib/macros-c-89.test
TAP version 14
# random seed: R02S1e9d6bb7703a6c2bdcacb9d9180afbd5
1..4
# Start of C tests
ok 1 /C/standard-89
# End of C tests
# Start of alignof tests
ok 2 /alignof/fallback
# End of alignof tests
# Start of assert tests
ok 3 /assert/static
# End of assert tests
# Start of struct tests
ok 4 /struct/sizeof_member
# End of struct tests
PASS: glib/macros-c-89.test
Running test: glib/socket-address.test
TAP version 14
# random seed: R02Sb296047445a77bd99993ec5476fe9b6d
1..2
# Start of socket tests
# Start of address tests
# Start of unix tests
ok 1 /socket/address/unix/construct
ok 2 /socket/address/unix/to-string
# End of unix tests
# End of address tests
# End of socket tests
PASS: glib/socket-address.test
Running test: glib/live-g-file.test
TAP version 14
# random seed: R02S77c124b29b54641e3846a72c3967661b
1..13
# Start of live-g-file tests
#   Cleaning target testing structure in 'testdir_live-g-file'...
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
ok 1 /live-g-file/prep_clean_structure
# 
#   Going to create testing structure in 'testdir_live-g-file'...
#     Creating directory 'dir1'...
#     Creating directory 'dir1/subdir'...
#     Creating directory 'dir2'...
#     Creating directory 'dir-target'...
#     Creating directory 'dir_no-access'...
#     Creating directory 'dir_no-write'...
#     Creating file 'target-file'...
#     Creating file 'normal_file'...
#     Creating symlink 'normal_file-symlink' --> 'normal_file'...
#     Creating file 'executable_file'...
#     Creating file 'private_file'...
#     Creating file 'normal_file2'...
#     Creating file 'readonly_file'...
#     Creating file 'UTF_pr?i?lis? z'...
#     Creating directory 'dir_pr?i?lis? z'...
#     Creating symlink 'lost_symlink' --> 'nowhere'...
#     Creating directory 'dir_hidden'...
#     Creating file 'dir_hidden/.a-hidden-file'...
#     Creating file 'dir_hidden/file-in-.hidden1'...
#     Creating file 'dir_hidden/file-in-.hidden2'...
#     Creating pattern file...
#  done.
ok 2 /live-g-file/create_structure
#   Testing sample structure in 'testdir_live-g-file'...
#     Testing file 'dir1'...
#     Testing file 'dir1/subdir'...
#     Testing file 'dir2'...
#     Testing file 'dir-target'...
#     Testing file 'dir_no-access'...
#     Testing file 'dir_no-write'...
#     Testing file 'target-file'...
#     Testing file 'normal_file'...
#     Testing file 'normal_file-symlink'...
#     Testing file 'executable_file'...
#     Testing file 'private_file'...
#     Testing file 'normal_file2'...
#     Testing file 'readonly_file'...
#     Testing file 'UTF_pr?i?lis? z'...
#     Testing file 'dir_pr?i?lis? z'...
#     Testing file 'lost_symlink'...
#     Testing file 'dir_hidden'...
#     Testing file 'dir_hidden/.a-hidden-file'...
#     Testing file 'dir_hidden/file-in-.hidden1'...
#     Testing file 'dir_hidden/file-in-.hidden2'...
#     Testing pattern file...
#       read 65536 bytes, total = 65536 of 65536.
ok 3 /live-g-file/test_initial_structure
#   Traversing through the sample structure in 'testdir_live-g-file'...
#   Found file dir1, relative to root: dir1
#   Found file subdir, relative to root: dir1/subdir
#   Found file dir2, relative to root: dir2
#   Found file dir-target, relative to root: dir-target
#   Found file dir_no-access, relative to root: dir_no-access
#   Found file dir_no-write, relative to root: dir_no-write
#   Found file target-file, relative to root: target-file
#   Found file normal_file, relative to root: normal_file
#   Found file normal_file-symlink, relative to root: normal_file-symlink
#   Found file executable_file, relative to root: executable_file
#   Found file private_file, relative to root: private_file
#   Found file normal_file2, relative to root: normal_file2
#   Found file readonly_file, relative to root: readonly_file
#   Found file UTF_pr?i?lis? z, relative to root: UTF_pr?i?lis? z
#   Found file dir_pr?i?lis? z, relative to root: dir_pr?i?lis? z
#   Found file lost_symlink, relative to root: lost_symlink
#   Found file dir_hidden, relative to root: dir_hidden
#   Found file .a-hidden-file, relative to root: dir_hidden/.a-hidden-file
#   Found file file-in-.hidden1, relative to root: dir_hidden/file-in-.hidden1
#   Found file .hidden, relative to root: dir_hidden/.hidden
#   Found file file-in-.hidden2, relative to root: dir_hidden/file-in-.hidden2
#   Found file pattern_file, relative to root: pattern_file
ok 4 /live-g-file/test_traverse_structure
#   Test enumerate 'testdir_live-g-file'...
#     Testing file 'dir_no-access'
#     Testing file 'normal_file'
#     Testing file 'normal_file-symlink'
#     Testing file 'not_exists'
#     Testing file 'not_exists'
#     Testing file 'not_exists2'
#     Testing file 'not_exists3'
#     Testing file 'not_exists4'
#     Testing file 'dir_no-execute/file'
ok 5 /live-g-file/test_enumerate
#   test_open: 'dir1'
#   test_open: 'dir_no-access'
#   test_open: 'target-file'
#   test_open: 'normal_file-symlink'
#   test_open: 'executable_file'
#   test_open: 'private_file'
#   test_open: 'readonly_file'
#   test_open: 'UTF_pr?i?lis? z'
#   test_open: 'pattern_file'
#   test_open: 'not_exists'
#   test_open: 'dir_no-execute/file'
#   test_open: 'lost_symlink'
ok 6 /live-g-file/test_open
#   test_create: 'dir1'
#        error code 3 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir1?: Is a directory
#   test_create: 'dir1/subdir'
#        error code 3 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir1/subdir?: Is a directory
#   test_create: 'dir2'
#        error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir2?: File exists
#   test_create: 'normal_file'
#        error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/normal_file?: File exists
#   test_create: 'executable_file'
#   test_create: 'private_file'
#   test_create: 'normal_file2'
#   test_create: 'UTF_pr?i?lis? z'
#        error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/UTF_pr?i?lis? z?: File exists
#   test_create: 'dir_pr?i?lis? z'
#        error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_pr?i?lis? z?: File exists
#   test_create: 'pattern_file'
#   test_create: 'not_exists2'
#   test_create: 'not_exists3'
#   test_create: 'not_exists4'
ok 7 /live-g-file/test_create
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir1/subdir' --> 'dir-target'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir1/subdir' --> '.'
#        res = 0, error code 2 = Target file exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir1/subdir' --> 'target-file'
#        res = 0, error code 4 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/dir1/subdir?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir1/subdir' --> 'not_exists'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir1/subdir' --> 'dir_no-access'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir1/subdir' --> 'dir_no-write'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir2' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir-target' --> 'dir-target'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir-target' --> '.'
#        res = 0, error code 2 = Target file exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir-target' --> 'target-file'
#        res = 0, error code 4 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/dir-target?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir-target' --> 'not_exists'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir-target' --> 'dir_no-access'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'dir-target' --> 'dir_no-write'
#        res = 0, error code 25 = Can?t recursively copy directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'target-file' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'target-file' --> '.'
#        res = 0, error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file?: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'target-file' --> 'target-file'
#        res = 0, error code 4 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/target-file?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'target-file' --> 'not_exists'
#        res = 0, error code 1 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/target-file?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'target-file' --> 'dir_no-access'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/target-file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'target-file' --> 'dir_no-write'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/target-file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file-symlink' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file-symlink' --> '.'
#        res = 0, error code 2 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/normal_file-symlink: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file-symlink' --> 'target-file'
#        res = 0, error code 4 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/normal_file-symlink: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file-symlink' --> 'not_exists'
#        res = 0, error code 1 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/normal_file-symlink: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file-symlink' --> 'dir_no-access'
#        res = 0, error code 14 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/normal_file-symlink: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file-symlink' --> 'dir_no-write'
#        res = 0, error code 14 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/normal_file-symlink: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> '.'
#        res = 0, error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/executable_file?: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> 'target-file'
#        res = 0, error code 4 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/executable_file?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> 'not_exists'
#        res = 0, error code 1 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/executable_file?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> 'dir_no-access'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/executable_file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'executable_file' --> 'dir_no-write'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/executable_file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> '.'
#        res = 0, error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/private_file?: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> 'target-file'
#        res = 0, error code 4 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/private_file?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> 'not_exists'
#        res = 0, error code 1 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/private_file?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> 'dir_no-access'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/private_file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'private_file' --> 'dir_no-write'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/private_file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> '.'
#        res = 0, error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/normal_file2?: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> 'target-file'
#        res = 0, error code 4 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/normal_file2?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> 'not_exists'
#        res = 0, error code 1 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/normal_file2?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> 'dir_no-access'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/normal_file2?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'normal_file2' --> 'dir_no-write'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/normal_file2?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> '.'
#        res = 0, error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/UTF_pr?i?lis? z?: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> 'target-file'
#        res = 0, error code 4 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/UTF_pr?i?lis? z?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> 'not_exists'
#        res = 0, error code 1 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/UTF_pr?i?lis? z?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> 'dir_no-access'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/UTF_pr?i?lis? z?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'UTF_pr?i?lis? z' --> 'dir_no-write'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/UTF_pr?i?lis? z?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'pattern_file' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'pattern_file' --> '.'
#        res = 0, error code 2 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/pattern_file?: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'pattern_file' --> 'target-file'
#        res = 0, error code 4 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/pattern_file?: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'pattern_file' --> 'not_exists'
#        res = 0, error code 1 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/pattern_file?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'pattern_file' --> 'dir_no-access'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/pattern_file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'pattern_file' --> 'dir_no-write'
#        res = 0, error code 14 = Error opening file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/pattern_file?: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> 'dir-target'
#        res = 0, error code 1 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> '.'
#        res = 0, error code 1 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> 'target-file'
#        res = 0, error code 1 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> 'not_exists'
#        res = 0, error code 1 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> 'dir_no-access'
#        res = 0, error code 1 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> 'dir_no-write'
#        res = 0, error code 1 = Error when getting information for file ?/var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists?: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'not_exists' --> 'dir-target'
#        res = 0, error code 1 = Error moving file /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'lost_symlink' --> 'dir-target'
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'lost_symlink' --> '.'
#        res = 0, error code 2 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/lost_symlink: File exists
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'lost_symlink' --> 'target-file'
#        res = 0, error code 4 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/target-file/lost_symlink: Not a directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'lost_symlink' --> 'not_exists'
#        res = 0, error code 1 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists/lost_symlink: No such file or directory
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'lost_symlink' --> 'dir_no-access'
#        res = 0, error code 14 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-access/lost_symlink: Permission denied
# We do not have CAP_DAC_OVERRIDE or equivalent
#     do_copy_move: 'lost_symlink' --> 'dir_no-write'
#        res = 0, error code 14 = Error making symbolic link /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-write/lost_symlink: Permission denied
ok 8 /live-g-file/test_copy_move
#   Deleting dir1, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir1
#       result = 0, error = Error removing file /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir1: Directory not empty
#   Deleting dir2, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir2
#       result = 0, error = Error removing file /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir2: No such file or directory
#   Deleting executable_file, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/executable_file
#       result = 0, error = Trashing on system internal mounts is not supported
#   Deleting readonly_file, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/readonly_file
#   Deleting dir_pr?i?lis? z, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_pr?i?lis? z
#   Deleting not_exists, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists
#       result = 0, error = Error removing file /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists: No such file or directory
#   Deleting not_exists, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists
#       result = 0, error = Error trashing file /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/not_exists: No such file or directory
#   Deleting dir_no-execute/file, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-execute/file
#       result = 0, error = Error removing file /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/dir_no-execute/file: No such file or directory
#   Deleting lost_symlink, path = /var/volatile/tmp/test-tmp-glib_live-g-file.test-MESX42/testdir_live-g-file/lost_symlink
ok 9 /live-g-file/test_delete
# We do not have CAP_DAC_OVERRIDE or equivalent
ok 10 /live-g-file/test_make_directory_with_parents
#   Cleaning target testing structure in 'testdir_live-g-file'...
#     deleting 'dir1'
#     deleting 'subdir'
#     deleting 'dir-target'
#     deleting 'dir2'
#     deleting 'target-file'
#     deleting 'normal_file-symlink'
#     deleting 'executable_file'
#     deleting 'private_file'
#     deleting 'normal_file2'
#     deleting 'UTF_pr?i?lis? z'
#     deleting 'pattern_file'
#     deleting 'lost_symlink'
#     deleting 'dir_no-access'
#     deleting 'dir_no-write'
#     deleting 'target-file'
#     deleting 'normal_file'
#     deleting 'normal_file-symlink'
#     deleting 'executable_file~'
#     deleting 'private_file'
#     deleting 'normal_file2~'
#     deleting 'UTF_pr?i?lis? z'
#     deleting 'dir_hidden'
#     deleting '.a-hidden-file'
#     deleting 'file-in-.hidden1'
#     deleting '.hidden'
#     deleting 'file-in-.hidden2'
#     deleting 'pattern_file'
#     deleting 'executable_file'
#     deleting 'normal_file2'
#     deleting 'not_exists2'
#     deleting 'not_exists3'
#     deleting 'not_exists4'
#     deleting 'a'
ok 11 /live-g-file/final_clean
# Start of test_unix_is_mountpoint tests
ok 12 /live-g-file/test_unix_is_mountpoint/sysroot
ok 13 /live-g-file/test_unix_is_mountpoint/proc
# End of test_unix_is_mountpoint tests
# End of live-g-file tests
PASS: glib/live-g-file.test
Running test: glib/simple-async-result.test
TAP version 14
# random seed: R02S57d730eb0ef45e201fc78238f89561ef
1..2
# Start of gio tests
# Start of simple-async-result tests
ok 1 /gio/simple-async-result/test
# GLib-GIO-DEBUG: GTask 0x559458d173e0 (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gio/simple-async-result/valid
# End of simple-async-result tests
# End of gio tests
PASS: glib/simple-async-result.test
Running test: glib/ifaceproperties.test
TAP version 14
# random seed: R02S4f7d3fedd0ce04372dc84eacda2318a1
1..7
# Start of interface tests
# Start of properties tests
ok 1 /interface/properties/set
ok 2 /interface/properties/notify
ok 3 /interface/properties/find-overridden
ok 4 /interface/properties/list-overridden
ok 5 /interface/properties/find-interface
ok 6 /interface/properties/list-interface
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=637738
ok 7 /interface/properties/not-overridden
# End of properties tests
# End of interface tests
PASS: glib/ifaceproperties.test
Running test: glib/cxx-03.test
TAP version 14
# random seed: R02S6d7b985cfd6afb36b07bd36ac4f0ba21
1..2
# Start of gtask tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 1 /gtask/name
# Start of name tests
# GLib-GIO-DEBUG: GTask some other name (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program.
ok 2 /gtask/name/macro-wrapper
# End of name tests
# End of gtask tests
PASS: glib/cxx-03.test
Running test: glib/markup-escape.test
TAP version 14
# random seed: R02Sf78d1a8ee77f702a6ac79412972c99b0
1..41
# Start of markup tests
ok 1 /markup/format
# Start of escape-text tests
ok 2 /markup/escape-text/0
ok 3 /markup/escape-text/1
ok 4 /markup/escape-text/2
ok 5 /markup/escape-text/3
ok 6 /markup/escape-text/4
ok 7 /markup/escape-text/5
ok 8 /markup/escape-text/6
ok 9 /markup/escape-text/7
ok 10 /markup/escape-text/8
ok 11 /markup/escape-text/9
ok 12 /markup/escape-text/10
ok 13 /markup/escape-text/11
ok 14 /markup/escape-text/12
ok 15 /markup/escape-text/13
ok 16 /markup/escape-text/14
ok 17 /markup/escape-text/15
ok 18 /markup/escape-text/16
ok 19 /markup/escape-text/17
ok 20 /markup/escape-text/18
ok 21 /markup/escape-text/19
ok 22 /markup/escape-text/20
ok 23 /markup/escape-text/21
ok 24 /markup/escape-text/22
# End of escape-text tests
# Start of escape-unichar tests
ok 25 /markup/escape-unichar/0
ok 26 /markup/escape-unichar/1
ok 27 /markup/escape-unichar/2
ok 28 /markup/escape-unichar/3
ok 29 /markup/escape-unichar/4
ok 30 /markup/escape-unichar/5
ok 31 /markup/escape-unichar/6
ok 32 /markup/escape-unichar/7
ok 33 /markup/escape-unichar/8
ok 34 /markup/escape-unichar/9
ok 35 /markup/escape-unichar/10
ok 36 /markup/escape-unichar/11
ok 37 /markup/escape-unichar/12
ok 38 /markup/escape-unichar/13
ok 39 /markup/escape-unichar/14
ok 40 /markup/escape-unichar/15
ok 41 /markup/escape-unichar/16
# End of escape-unichar tests
# End of markup tests
PASS: glib/markup-escape.test
Running test: glib/refstring.test
TAP version 14
# random seed: R02S4d61483498ec3f7de2422aa5a72ad742
1..8
# Start of refstring tests
# s = 'hello, world' (0x562f5c67d8d0)
ok 1 /refstring/base
ok 2 /refstring/length
ok 3 /refstring/length-auto
ok 4 /refstring/length-nuls
# s = 'hello, world' (0x562f5c67d770)
# p = s = 'hello, world' (0x562f5c67d770)
# releasing p[0x562f5c67d770] ('hello, world')
# p = 'goodbye, world' (0x562f5c67d8d0)
# releasing p[0x562f5c67d8d0] ('goodbye, world')
# releasing s[0x562f5c67d770] ('hello, world')
ok 5 /refstring/intern
# /refstring/hash_equal summary: Test g_ref_string_equal() in GHashTable
ok 6 /refstring/hash_equal
# /refstring/equal summary: Test g_ref_string_equal() standalone
ok 7 /refstring/equal
ok 8 /refstring/intern-thread-safety
# End of refstring tests
PASS: glib/refstring.test
Running test: glib/utils-isolated.test
TAP version 14
# random seed: R02Sf26e26e70fb123228b70591c6c197a20
1..11
# Start of utils-isolated tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/tmp-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/tmp-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/tmp-dir/.dirs/runtime
ok 1 /utils-isolated/tmp-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/home-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/home-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/home-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/home-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/home-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/home-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/home-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/home-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/home-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/home-dir/.dirs/runtime
ok 2 /utils-isolated/home-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/user-cache-dir/.dirs/runtime
ok 3 /utils-isolated/user-cache-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/system-config1:/var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/system-data1:/var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/system-config-dirs/.dirs/runtime
ok 4 /utils-isolated/system-config-dirs
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/user-config-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/user-config-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/user-config-dir/.dirs/runtime
ok 5 /utils-isolated/user-config-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/system-config1:/var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/system-data1:/var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/system-data-dirs/.dirs/runtime
ok 6 /utils-isolated/system-data-dirs
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/user-data-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/user-data-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/user-data-dir/.dirs/runtime
ok 7 /utils-isolated/user-data-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/user-state-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/user-state-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/user-state-dir/.dirs/runtime
ok 8 /utils-isolated/user-state-dir
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/system-config1:/var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/system-data1:/var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/user-runtime-dir/.dirs/runtime
ok 9 /utils-isolated/user-runtime-dir
# Start of cleanup tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/system-config1:/var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/system-data1:/var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/runtime
Unable to clean up temporary directory /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs/runtime: Directory not empty
Unable to clean up temporary directory /var/volatile/tmp/utils-isolated/cleanup/handles-errors/.dirs: Directory not empty
Unable to clean up temporary directory /var/volatile/tmp/utils-isolated/cleanup/handles-errors: Directory not empty
ok 10 /utils-isolated/cleanup/handles-errors
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/system-config1:/var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/system-data1:/var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks/.dirs/runtime
Unable to clean up temporary directory /var/volatile/tmp/utils-isolated/cleanup/doesnt-follow-symlinks: No such file or directory
ok 11 /utils-isolated/cleanup/doesnt-follow-symlinks
# End of cleanup tests
# End of utils-isolated tests
PASS: glib/utils-isolated.test
Running test: glib/performance-threaded.test
Running test "liststore-is-a"
  32585 runs, min/avg/max = 0.030/0.031/0.106 ms
Running test "liststore-interface-peek"
Executing: glib/performance-threaded.test
  59223 runs, min/avg/max = 0.016/0.017/0.081 ms
Running test "liststore-interface-peek-same"
  59203 runs, min/avg/max = 0.016/0.017/0.110 ms
PASS: glib/performance-threaded.test
Running test: glib/mimeapps.test
TAP version 14
# random seed: R02S186e39b3aaf91b8464e950f280524dd5
1..7
# Start of appinfo tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/all/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/all/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/all/.dirs/system-config1:/var/volatile/tmp/appinfo/all/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/all/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/all/.dirs/system-data1:/var/volatile/tmp/appinfo/all/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/all/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/all/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/all/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/all/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/all/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/all/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/all/.dirs/data/applications/mimeinfo.cache'
ok 1 /appinfo/all
# Start of mime tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime/api/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime/api/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime/api/.dirs/system-config1:/var/volatile/tmp/appinfo/mime/api/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime/api/.dirs/system-data1:/var/volatile/tmp/appinfo/mime/api/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime/api/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime/api/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime/api/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/api/.dirs/data/applications/mimeinfo.cache'
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/all/.dirs/config to /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/api/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/api/.dirs/config
ok 2 /appinfo/mime/api
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime/default/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime/default/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime/default/.dirs/system-config1:/var/volatile/tmp/appinfo/mime/default/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime/default/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime/default/.dirs/system-data1:/var/volatile/tmp/appinfo/mime/default/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime/default/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime/default/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime/default/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/default/.dirs/data/applications/mimeinfo.cache'
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime/api/.dirs/config to /var/volatile/tmp/appinfo/mime/default/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default/.dirs/config
ok 3 /appinfo/mime/default
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime/file/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime/file/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime/file/.dirs/system-config1:/var/volatile/tmp/appinfo/mime/file/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime/file/.dirs/system-data1:/var/volatile/tmp/appinfo/mime/file/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime/file/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime/file/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime/file/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/file/.dirs/data/applications/mimeinfo.cache'
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime/default/.dirs/config to /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/file/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/file/.dirs/config
ok 4 /appinfo/mime/file
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/system-config1:/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/system-data1:/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/data/applications/mimeinfo.cache'
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime/file/.dirs/config to /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/config
ok 5 /appinfo/mime/scheme-handler
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/system-config1:/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/system-data1:/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/default-last-used/.dirs/data/applications/mimeinfo.cache'
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime/scheme-handler/.dirs/config to /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
# GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config
ok 6 /appinfo/mime/default-last-used
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/system-config1:/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/system-data1:/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/runtime
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/system-data1/applications'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/system-data1/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/myapp.desktop'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/myapp2.desktop'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/myapp3.desktop'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/myapp4.desktop'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/myapp5.desktop'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/nosuchapp.desktop'
# removing '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/mimeapps.list'
# creating '/var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/data/applications/mimeinfo.cache'
# GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime/default-last-used/.dirs/config to /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/config
ok 7 /appinfo/mime/ignore-nonexisting
# End of mime tests
# End of appinfo tests
PASS: glib/mimeapps.test
Running test: glib/thread-pool.test
TAP version 14
# random seed: R02S3156c29d3c7ddde562b65cc44252222b
1..5
# Start of thread_pool tests
# /thread_pool/shared summary: Tests that a shared, non-exclusive thread pool generally works.
ok 1 /thread_pool/shared
# /thread_pool/exclusive summary: Tests that an exclusive thread pool generally works.
ok 2 /thread_pool/exclusive
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2012
# /thread_pool/create_shared_after_exclusive summary: Tests that creating a shared pool after an exclusive one works.
ok 3 /thread_pool/create_shared_after_exclusive
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/121
ok 4 /thread_pool/create_full
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2012
# /thread_pool/create_exclusive_after_shared summary: Tests that creating an exclusive pool after a shared one works.
ok 5 /thread_pool/create_exclusive_after_shared
# End of thread_pool tests
PASS: glib/thread-pool.test
Running test: glib/singleton.test
TAP version 14
# random seed: R02Sdf42f2d33bd2c0290b2eef856862fce6
1..2
# Start of gobject tests
# Start of singleton tests
ok 1 /gobject/singleton/construction
# /gobject/singleton/construct-property summary: Test that creating a singleton with a construct-time property works
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2666
ok 2 /gobject/singleton/construct-property
# End of singleton tests
# End of gobject tests
PASS: glib/singleton.test
Running test: glib/once.test
TAP version 14
# random seed: R02Sea0e563da3d50d4a516591c0756d4c4b
1..5
# Start of once tests
# /once/single-threaded summary: Test g_once() usage from a single thread
ok 1 /once/single-threaded
# /once/multi-threaded summary: Test g_once() usage from multiple threads
ok 2 /once/multi-threaded
# End of once tests
# Start of once-init tests
# /once-init/single-threaded summary: Test g_once_init_{enter,leave}() usage from a single thread
ok 3 /once-init/single-threaded
# /once-init/multi-threaded summary: Test g_once_init_{enter,leave}() usage from multiple threads
ok 4 /once-init/multi-threaded
# /once-init/string summary: Test g_once_init_{enter,leave}() usage with a string
ok 5 /once-init/string
# End of once-init tests
PASS: glib/once.test
Running test: glib/filter-streams.test
TAP version 14
# random seed: R02Sab7e96f75d6880de82d180daf9e82558
1..4
# Start of filter-stream tests
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=568394
ok 1 /filter-stream/input
ok 2 /filter-stream/output
ok 3 /filter-stream/async-input
ok 4 /filter-stream/async-output
# End of filter-stream tests
PASS: glib/filter-streams.test
Running test: glib/markup-collect.test
TAP version 14
# random seed: R02Scf2202c30e70b0cbd08d0377e8ae4900
1..21
# Start of markup tests
# Start of collect tests
ok 1 /markup/collect/0
ok 2 /markup/collect/1
ok 3 /markup/collect/2
ok 4 /markup/collect/3
ok 5 /markup/collect/4
ok 6 /markup/collect/5
ok 7 /markup/collect/6
ok 8 /markup/collect/7
ok 9 /markup/collect/8
ok 10 /markup/collect/9
ok 11 /markup/collect/10
ok 12 /markup/collect/11
ok 13 /markup/collect/12
ok 14 /markup/collect/13
ok 15 /markup/collect/14
ok 16 /markup/collect/15
ok 17 /markup/collect/16
ok 18 /markup/collect/17
ok 19 /markup/collect/18
ok 20 /markup/collect/19
ok 21 /markup/collect/cleanup
# End of collect tests
# End of markup tests
PASS: glib/markup-collect.test
Running test: glib/closure.test
TAP version 14
# random seed: R02S835b36918b5bce742339bbda1141ac54
1..6
# Start of closure tests
ok 1 /closure/idle
ok 2 /closure/timeout
ok 3 /closure/iochannel
ok 4 /closure/child
ok 5 /closure/fd
ok 6 /closure/signal
# End of closure tests
PASS: glib/closure.test
Running test: glib/threadtests.test
TAP version 14
# random seed: R02Sb2057fac9ef13cd79bb83e72388effac
1..5
# Start of GObject tests
ok 1 /GObject/threaded-object-init
ok 2 /GObject/threaded-weak-ref
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2394
# /GObject/threaded-toggle-notify summary: Test that toggle reference notifications can be changed safely from another (the main) thread without causing the notifying thread to abort
ok 3 /GObject/threaded-toggle-notify
ok 4 /GObject/threaded-g-pointer-bit-unlock-and-set
# Start of threaded-weak-ref tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2390
# /GObject/threaded-weak-ref/on-finalization summary: Test that a weak ref added by another thread during dispose of a GObject is cleared during finalisation. Use on_weak_ref_disposed() to synchronize the other thread with the dispose vfunc.
ok 5 /GObject/threaded-weak-ref/on-finalization
# End of threaded-weak-ref tests
# End of GObject tests
PASS: glib/threadtests.test
Running test: glib/signals-refcount4.test
TAP version 14
# random seed: R02Sf89958672a2c0a16540c45cc490df0ae
1..1
# Start of gobject tests
# Start of refcount tests
# init 0x5604b47153f0
# 
# init 0x5604b470e600
# 
Executing: glib/signals-refcount4.test
# dispose 0x5604b47153f0!
# 
# dispose 0x5604b470e600!
# 
ok 1 /gobject/refcount/signals
# slow test /gobject/refcount/signals executed in 5.00 secs
# End of refcount tests
# End of gobject tests
PASS: glib/signals-refcount4.test
Running test: glib/slist.test
TAP version 14
# random seed: R02S4eb337837150f7e56f978e6fde22fbf2
1..14
# Start of slist tests
ok 1 /slist/sort
ok 2 /slist/sort-with-data
ok 3 /slist/insert-sorted
ok 4 /slist/insert-sorted-with-data
ok 5 /slist/reverse
ok 6 /slist/nth
ok 7 /slist/remove
ok 8 /slist/remove-all
ok 9 /slist/insert
ok 10 /slist/position
ok 11 /slist/concat
ok 12 /slist/copy
# Start of sort tests
ok 13 /slist/sort/stable
# End of sort tests
# Start of copy tests
ok 14 /slist/copy/deep
# End of copy tests
# End of slist tests
PASS: glib/slist.test
Running test: glib/trash.test
TAP version 14
# random seed: R02S6dd87c8ef552e23a258673747d9b7ead
1..3
# Start of trash tests
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/251
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
# File: /var/volatile/tmp/test-trash5WCZ42 (parent st_dev: 21)
# Home: /home/glib2-test (st_dev: 64768)
# Mount: /var/volatile
# Error: Trashing on system internal mounts is not supported
ok 1 /trash/not-supported
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1522
ok 2 /trash/symlinks # SKIP Directory '/home/glib2-test/.local' does not exist
ok 3 /trash/long-filename
# End of trash tests
PASS: glib/trash.test
Running test: glib/value.test
TAP version 14
# random seed: R02Sa8fedcc2e9b20d59d4c48505d9bc14d9
1..9
# Start of value tests
ok 1 /value/basic
ok 2 /value/collection
ok 3 /value/copying
ok 4 /value/enum-transformation
ok 5 /value/gtype
# /value/string summary: Test that G_TYPE_STRING GValue copy properly
ok 6 /value/string
# Next: GObject object in GValue of GObject to GValue of GObject
# Next: GObject object in GValue of GObject to GValue of TestInterface
# Next: GObject object in GValue of GObject to GValue of TestObjectA
# Next: GObject object in GValue of GObject to GValue of TestObjectB
# Next: GObject object in GValue of GObject to GValue of TestObjectA1
# Next: GObject object in GValue of GObject to GValue of TestObjectA2
# Next: TestObjectA object in GValue of GObject to GValue of GObject
# Next: TestObjectA object in GValue of GObject to GValue of TestInterface
# Next: TestObjectA object in GValue of GObject to GValue of TestObjectA
# Next: TestObjectA object in GValue of GObject to GValue of TestObjectB
# Next: TestObjectA object in GValue of GObject to GValue of TestObjectA1
# Next: TestObjectA object in GValue of GObject to GValue of TestObjectA2
# Next: TestObjectA object in GValue of TestObjectA to GValue of GObject
# Next: TestObjectA object in GValue of TestObjectA to GValue of TestInterface
# Next: TestObjectA object in GValue of TestObjectA to GValue of TestObjectA
# Next: TestObjectA object in GValue of TestObjectA to GValue of TestObjectB
# Next: TestObjectA object in GValue of TestObjectA to GValue of TestObjectA1
# Next: TestObjectA object in GValue of TestObjectA to GValue of TestObjectA2
# Next: TestObjectB object in GValue of GObject to GValue of GObject
# Next: TestObjectB object in GValue of GObject to GValue of TestInterface
# Next: TestObjectB object in GValue of GObject to GValue of TestObjectA
# Next: TestObjectB object in GValue of GObject to GValue of TestObjectB
# Next: TestObjectB object in GValue of GObject to GValue of TestObjectA1
# Next: TestObjectB object in GValue of GObject to GValue of TestObjectA2
# Next: TestObjectB object in GValue of TestInterface to GValue of GObject
# Next: TestObjectB object in GValue of TestInterface to GValue of TestInterface
# Next: TestObjectB object in GValue of TestInterface to GValue of TestObjectA
# Next: TestObjectB object in GValue of TestInterface to GValue of TestObjectB
# Next: TestObjectB object in GValue of TestInterface to GValue of TestObjectA1
# Next: TestObjectB object in GValue of TestInterface to GValue of TestObjectA2
# Next: TestObjectB object in GValue of TestObjectB to GValue of GObject
# Next: TestObjectB object in GValue of TestObjectB to GValue of TestInterface
# Next: TestObjectB object in GValue of TestObjectB to GValue of TestObjectA
# Next: TestObjectB object in GValue of TestObjectB to GValue of TestObjectB
# Next: TestObjectB object in GValue of TestObjectB to GValue of TestObjectA1
# Next: TestObjectB object in GValue of TestObjectB to GValue of TestObjectA2
# Next: TestObjectA1 object in GValue of GObject to GValue of GObject
# Next: TestObjectA1 object in GValue of GObject to GValue of TestInterface
# Next: TestObjectA1 object in GValue of GObject to GValue of TestObjectA
# Next: TestObjectA1 object in GValue of GObject to GValue of TestObjectB
# Next: TestObjectA1 object in GValue of GObject to GValue of TestObjectA1
# Next: TestObjectA1 object in GValue of GObject to GValue of TestObjectA2
# Next: TestObjectA1 object in GValue of TestObjectA to GValue of GObject
# Next: TestObjectA1 object in GValue of TestObjectA to GValue of TestInterface
# Next: TestObjectA1 object in GValue of TestObjectA to GValue of TestObjectA
# Next: TestObjectA1 object in GValue of TestObjectA to GValue of TestObjectB
# Next: TestObjectA1 object in GValue of TestObjectA to GValue of TestObjectA1
# Next: TestObjectA1 object in GValue of TestObjectA to GValue of TestObjectA2
# Next: TestObjectA1 object in GValue of TestObjectA1 to GValue of GObject
# Next: TestObjectA1 object in GValue of TestObjectA1 to GValue of TestInterface
# Next: TestObjectA1 object in GValue of TestObjectA1 to GValue of TestObjectA
# Next: TestObjectA1 object in GValue of TestObjectA1 to GValue of TestObjectB
# Next: TestObjectA1 object in GValue of TestObjectA1 to GValue of TestObjectA1
# Next: TestObjectA1 object in GValue of TestObjectA1 to GValue of TestObjectA2
# Next: TestObjectA2 object in GValue of GObject to GValue of GObject
# Next: TestObjectA2 object in GValue of GObject to GValue of TestInterface
# Next: TestObjectA2 object in GValue of GObject to GValue of TestObjectA
# Next: TestObjectA2 object in GValue of GObject to GValue of TestObjectB
# Next: TestObjectA2 object in GValue of GObject to GValue of TestObjectA1
# Next: TestObjectA2 object in GValue of GObject to GValue of TestObjectA2
# Next: TestObjectA2 object in GValue of TestInterface to GValue of GObject
# Next: TestObjectA2 object in GValue of TestInterface to GValue of TestInterface
# Next: TestObjectA2 object in GValue of TestInterface to GValue of TestObjectA
# Next: TestObjectA2 object in GValue of TestInterface to GValue of TestObjectB
# Next: TestObjectA2 object in GValue of TestInterface to GValue of TestObjectA1
# Next: TestObjectA2 object in GValue of TestInterface to GValue of TestObjectA2
# Next: TestObjectA2 object in GValue of TestObjectA to GValue of GObject
# Next: TestObjectA2 object in GValue of TestObjectA to GValue of TestInterface
# Next: TestObjectA2 object in GValue of TestObjectA to GValue of TestObjectA
# Next: TestObjectA2 object in GValue of TestObjectA to GValue of TestObjectB
# Next: TestObjectA2 object in GValue of TestObjectA to GValue of TestObjectA1
# Next: TestObjectA2 object in GValue of TestObjectA to GValue of TestObjectA2
# Next: TestObjectA2 object in GValue of TestObjectA2 to GValue of GObject
# Next: TestObjectA2 object in GValue of TestObjectA2 to GValue of TestInterface
# Next: TestObjectA2 object in GValue of TestObjectA2 to GValue of TestObjectA
# Next: TestObjectA2 object in GValue of TestObjectA2 to GValue of TestObjectB
# Next: TestObjectA2 object in GValue of TestObjectA2 to GValue of TestObjectA1
# Next: TestObjectA2 object in GValue of TestObjectA2 to GValue of TestObjectA2
ok 7 /value/transform-object
# Start of array tests
ok 8 /value/array/basic
ok 9 /value/array/sort-with-data
# End of array tests
# End of value tests
PASS: glib/value.test
Running test: glib/string.test
TAP version 14
# random seed: R02Sb482ce43ce0bd555ad77763641afb11b
1..23
# Start of string tests
ok 1 /string/test-string-chunks
ok 2 /string/test-string-chunk-insert
ok 3 /string/test-string-new
ok 4 /string/test-string-printf
ok 5 /string/test-string-assign
ok 6 /string/test-string-append-c
ok 7 /string/test-string-append
ok 8 /string/test-string-append-vprintf
ok 9 /string/test-string-prepend-c
ok 10 /string/test-string-prepend
ok 11 /string/test-string-insert
ok 12 /string/test-string-insert-unichar
ok 13 /string/test-string-equal
ok 14 /string/test-string-truncate
ok 15 /string/test-string-overwrite
ok 16 /string/test-string-nul-handling
ok 17 /string/test-string-up-down
ok 18 /string/test-string-set-size
ok 19 /string/test-string-to-bytes
# 0: Replacing "bar" with "baz" (limit 0) in "foo bar foo baz foo bar foobarbaz"
# -> 3 replacements, "foo baz foo baz foo baz foobazbaz"
# 1: Replacing "baz" with "bar" (limit 3) in "foo baz foo baz foo baz foobazbaz"
# -> 3 replacements, "foo bar foo bar foo bar foobazbaz"
# 2: Replacing "foobar" with "bar" (limit 1) in "foo bar foo bar foo bar foobazbaz"
# -> 0 replacements, "foo bar foo bar foo bar foobazbaz"
# 3: Replacing "a" with "abcdefghijkl" (limit 0) in "aaaaaaaa"
# -> 8 replacements, "abcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijkl"
# 4: Replacing "$LIB" with "lib32" (limit 0) in "/usr/$LIB/libMangoHud.so"
# -> 1 replacements, "/usr/lib32/libMangoHud.so"
# 5: Replacing "o" with "" (limit 0) in "food for foals"
# -> 4 replacements, "fd fr fals"
# 6: Replacing "a" with "aaa" (limit 0) in "aaa"
# -> 3 replacements, "aaaaaaaaa"
# 7: Replacing "a" with "" (limit 0) in "aaa"
# -> 3 replacements, ""
# 8: Replacing "aa" with "bb" (limit 0) in "aaa"
# -> 1 replacements, "bba"
# 9: Replacing "" with "bar" (limit 0) in "foo"
# -> 4 replacements, "barfbarobarobar"
# 10: Replacing "" with "bar" (limit 1) in "foo"
# -> 1 replacements, "barfoo"
# 11: Replacing "" with "bar" (limit 2) in "foo"
# -> 2 replacements, "barfbaroo"
# 12: Replacing "" with "bar" (limit 3) in "foo"
# -> 3 replacements, "barfbarobaro"
# 13: Replacing "" with "bar" (limit 4) in "foo"
# -> 4 replacements, "barfbarobarobar"
# 14: Replacing "" with "bar" (limit 5) in "foo"
# -> 4 replacements, "barfbarobarobar"
# 15: Replacing "" with "x" (limit 0) in ""
# -> 1 replacements, "x"
# 16: Replacing "" with "" (limit 0) in ""
# -> 1 replacements, ""
# 17: Replacing "" with "aaaaaaaaaaaa" (limit 0) in "bbbbbbbbb"
# -> 10 replacements, "aaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaaaa"
ok 20 /string/test-string-replace
ok 21 /string/test-string-steal
ok 22 /string/test-string-new-take
# Start of test-string-new-take tests
ok 23 /string/test-string-new-take/null
# End of test-string-new-take tests
# End of string tests
PASS: glib/string.test
Running test: glib/throws.test
TAP version 14
# random seed: R02Sfeb0cebd3d850925c4b18f472767158e
1..3
# Start of throws tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/throws/invoke-gerror/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/throws/invoke-gerror/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/throws/invoke-gerror/.dirs/system-config1:/var/volatile/tmp/throws/invoke-gerror/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/throws/invoke-gerror/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/throws/invoke-gerror/.dirs/system-data1:/var/volatile/tmp/throws/invoke-gerror/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/throws/invoke-gerror/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/throws/invoke-gerror/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/throws/invoke-gerror/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /throws/invoke-gerror summary: Test invoking a function that throws a GError
ok 1 /throws/invoke-gerror
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/system-config1:/var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/system-data1:/var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/throws/vfunc-can-throw-gerror/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /throws/vfunc-can-throw-gerror summary: Test gi_callable_info_can_throw_gerror() on a vfunc
ok 2 /throws/vfunc-can-throw-gerror
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/system-config1:/var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/system-data1:/var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/throws/callback-can-throw-gerror/.dirs/runtime
# Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection
# /throws/callback-can-throw-gerror summary: Test gi_callable_info_can_throw_gerror() on a callback
ok 3 /throws/callback-can-throw-gerror
# End of throws tests
PASS: glib/throws.test
Running test: glib/stream-rw_all.test
TAP version 14
# random seed: R02S3651904e9d3095087e3a267b2468e215
1..3
# Start of stream tests
# Start of read_all_async tests
ok 1 /stream/read_all_async/memory
# End of read_all_async tests
# Start of write_all_async tests
ok 2 /stream/write_all_async/memory
# End of write_all_async tests
# Start of read_write_all_async tests
ok 3 /stream/read_write_all_async/pipe
# End of read_write_all_async tests
# End of stream tests
PASS: glib/stream-rw_all.test
Running test: glib/io-channel-basic.test
TAP version 14
# random seed: R02Seeccba84918f6b3c03eafb30ef3a5569
1..1
# Start of gio tests
# Subtest: /usr/libexec/installed-tests/glib/io-channel-basic
    # random seed: R02S0c53206fde0681dfbafcb4522b5fe717
    # GLib-DEBUG: io-channel-basic: child writing 8+1492 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1492 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3735 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 3735 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4564 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 4564 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3868 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 3868 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1572 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1572 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4472 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 4472 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1859 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1859 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+324 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 324 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
Executing: glib/io-channel-basic.test
    # GLib-DEBUG: io-channel-basic: child writing 8+2263 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 2263 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1838 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1838 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2517 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 2517 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2823 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 2823 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2714 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 2714 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4806 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 4806 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1422 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1422 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4680 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 4680 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+416 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 416 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1206 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1206 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4070 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 4070 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+158 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 158 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4405 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 4405 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1728 bytes to 6
# GLib-DEBUG: io-channel-basic: ...from 5: IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1728 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1391 bytes to 6
    # GLib-DEBUG: io-channel-basic: child exiting, closing 6
# GLib-DEBUG: io-channel-basic: ...from 5: HUP IN
# GLib-DEBUG: io-channel-basic: ...from 5: 1391 bytes
# GLib-DEBUG: io-channel-basic: ...from 5: OK
# Subtest: /usr/libexec/installed-tests/glib/io-channel-basic
    # random seed: R02S82d6ec4a88c2c84799df837c9e2b96b4
# Subtest: /usr/libexec/installed-tests/glib/io-channel-basic
    # random seed: R02S2216de8b8070a31fc7b70dd882f2ac5a
# Subtest: /usr/libexec/installed-tests/glib/io-channel-basic
    # random seed: R02S4079ceb6167cf11a7045a2adce19775c
# Subtest: /usr/libexec/installed-tests/glib/io-channel-basic
    # random seed: R02Sbbb7e0cafed6c2113f6e5d36aab6b5bb
# Subtest: /usr/libexec/installed-tests/glib/io-channel-basic
    # random seed: R02S1aae27e33fb307f4724e4fe0b5c021f3
    # GLib-DEBUG: io-channel-basic: child writing 8+4463 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 4463 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4651 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 4651 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+153 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 153 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3849 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 3849 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1549 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1549 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2277 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 2277 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4422 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 4422 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3621 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 3621 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+373 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 373 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1029 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1029 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1976 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 1976 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4324 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 4324 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2828 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2828 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1883 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 1883 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+513 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 513 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3362 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 3362 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+882 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 882 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+227 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 227 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1977 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1977 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4485 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4485 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2578 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 2578 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2934 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 2934 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+820 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 820 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1582 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1582 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4111 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4111 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
Executing: glib/io-channel-basic.test
    # GLib-DEBUG: io-channel-basic: child writing 8+3776 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 3776 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+124 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 124 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3112 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 3112 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1782 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1782 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2237 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 2237 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1453 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 1453 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1298 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 1298 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2220 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2220 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2654 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 2654 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4686 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4686 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1586 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 1586 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4741 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 4741 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4183 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 4183 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3612 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3612 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1890 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 1890 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3550 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 3550 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2201 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 2201 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4901 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 4901 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4620 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 4620 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+230 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 230 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4503 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 4503 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2969 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2969 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+654 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 654 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+997 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 997 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4309 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4309 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4205 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 4205 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4550 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 4550 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+21 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 21 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2636 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 2636 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4636 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4636 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+950 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 950 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+297 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 297 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+363 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 363 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1375 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1375 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4747 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4747 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1070 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 1070 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+237 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 237 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3936 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 3936 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4590 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 4590 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2274 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 2274 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2805 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 2805 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1230 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 1230 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4565 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 4565 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+405 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 405 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3333 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 3333 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3121 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 3121 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2939 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2939 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4817 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 4817 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1466 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1466 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4371 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4371 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2527 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 2527 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1795 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 1795 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1952 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 1952 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2785 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 2785 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4335 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4335 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2628 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 2628 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2385 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2385 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4164 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 4164 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3733 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3733 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+893 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 893 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+514 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 514 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+41 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 41 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1557 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 1557 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+581 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 581 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1728 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 1728 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1488 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 1488 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2110 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 2110 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1407 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 1407 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3468 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3468 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1446 bytes to 11
# GLib-DEBUG: io-channel-basic: ...from 10: IN
# GLib-DEBUG: io-channel-basic: ...from 10: 1446 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3428 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 3428 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3751 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 3751 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3733 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 3733 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3876 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3876 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4340 bytes to 11
    # GLib-DEBUG: io-channel-basic: child exiting, closing 11
# GLib-DEBUG: io-channel-basic: ...from 10: HUP IN
# GLib-DEBUG: io-channel-basic: ...from 10: 4340 bytes
# GLib-DEBUG: io-channel-basic: ...from 10: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1905 bytes to 15
# GLib-DEBUG: io-channel-basic: ...from 14: IN
# GLib-DEBUG: io-channel-basic: ...from 14: 1905 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+413 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 413 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2498 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2498 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3865 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3865 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4229 bytes to 15
    # GLib-DEBUG: io-channel-basic: child exiting, closing 15
# GLib-DEBUG: io-channel-basic: ...from 14: HUP IN
# GLib-DEBUG: io-channel-basic: ...from 14: 4229 bytes
# GLib-DEBUG: io-channel-basic: ...from 14: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+4402 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 4402 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1790 bytes to 13
# GLib-DEBUG: io-channel-basic: ...from 12: IN
# GLib-DEBUG: io-channel-basic: ...from 12: 1790 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2812 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 2812 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+2617 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 2617 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+1511 bytes to 13
    # GLib-DEBUG: io-channel-basic: child exiting, closing 13
# GLib-DEBUG: io-channel-basic: ...from 12: HUP IN
# GLib-DEBUG: io-channel-basic: ...from 12: 1511 bytes
# GLib-DEBUG: io-channel-basic: ...from 12: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3699 bytes to 17
# GLib-DEBUG: io-channel-basic: ...from 16: IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3699 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3523 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 3523 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3893 bytes to 17
    # GLib-DEBUG: io-channel-basic: child exiting, closing 17
# GLib-DEBUG: io-channel-basic: ...from 16: HUP IN
# GLib-DEBUG: io-channel-basic: ...from 16: 3893 bytes
# GLib-DEBUG: io-channel-basic: ...from 16: OK
Executing: glib/io-channel-basic.test
    # GLib-DEBUG: io-channel-basic: child writing 8+1477 bytes to 9
# GLib-DEBUG: io-channel-basic: ...from 8: IN
# GLib-DEBUG: io-channel-basic: ...from 8: 1477 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
    # GLib-DEBUG: io-channel-basic: child writing 8+3710 bytes to 9
    # GLib-DEBUG: io-channel-basic: child exiting, closing 9
# GLib-DEBUG: io-channel-basic: ...from 8: HUP IN
# GLib-DEBUG: io-channel-basic: ...from 8: 3710 bytes
# GLib-DEBUG: io-channel-basic: ...from 8: OK
ok 1 /gio/io-basics
# slow test /gio/io-basics executed in 12.77 secs
# End of gio tests
PASS: glib/io-channel-basic.test
Running test: glib/types.test
TAP version 14
# random seed: R02S3015a6c334a449bc4f45ff1167ce2e69
1..1
# Start of types tests
ok 1 /types/basic_types
# End of types tests
PASS: glib/types.test
Running test: glib/test-printf.test
TAP version 14
# random seed: R02Sd7ccdf69e43cc6ad95d6688f3278321f
1..22
# Start of snprintf tests
ok 1 /snprintf/retval-and-trunc
ok 2 /snprintf/%d
ok 3 /snprintf/%d-invalid
ok 4 /snprintf/%o
ok 5 /snprintf/%u
ok 6 /snprintf/%x
ok 7 /snprintf/%X
ok 8 /snprintf/%f
ok 9 /snprintf/%e
ok 10 /snprintf/%c
ok 11 /snprintf/%s
ok 12 /snprintf/%n
ok 13 /snprintf/test-percent
ok 14 /snprintf/test-positional-params
ok 15 /snprintf/test-64bit
# End of snprintf tests
# Start of printf tests
ok 16 /printf/test-percent
ok 17 /printf/test-positional-params
ok 18 /printf/test-64bit
# Start of test-64bit tests
# Start of subprocess tests
# End of subprocess tests
# End of test-64bit tests
# End of printf tests
# Start of sprintf tests
ok 19 /sprintf/test-positional-params
ok 20 /sprintf/upper-bound
# End of sprintf tests
# Start of vasprintf tests
# /vasprintf/invalid-format-placeholder summary: Test error handling for invalid format placeholder in g_vasprintf()
ok 21 /vasprintf/invalid-format-placeholder
# /vasprintf/invalid-wide-string summary: Test error handling for invalid wide strings in g_vasprintf()
ok 22 /vasprintf/invalid-wide-string
# End of vasprintf tests
PASS: glib/test-printf.test
Running test: glib/credentials.test
TAP version 14
# random seed: R02S12419f63d4861cf4f38340d73e9d3bd9
1..1
# Start of credentials tests
# GCredentials:linux-ucred:pid=10833,uid=1000,gid=1000
# GCredentials:linux-ucred:pid=10833,uid=0,gid=1000
ok 1 /credentials/basic
# End of credentials tests
PASS: glib/credentials.test
Running test: glib/signal-handler.test
TAP version 14
# random seed: R02Sc68157dd1930d5021bfd6f0f7a9ad7db
1..7
# Start of signal tests
# Start of handler tests
# min perf: connected 1 handlers in  0.000 seconds
ok 1 /signal/handler/connect-many
# min perf: disconnected 1 handlers in  0.000 seconds
ok 2 /signal/handler/disconnect-many-ordered
# min perf: disconnected 1 handlers in  0.000 seconds
ok 3 /signal/handler/disconnect-many-inverse
# min perf: disconnected 1 handlers in  0.000 seconds
ok 4 /signal/handler/disconnect-many-random
# min perf: disconnected 1 handlers in  0.000 seconds
ok 5 /signal/handler/disconnect-2-signals
# min perf: disconnected 1 handlers in  0.000 seconds
ok 6 /signal/handler/disconnect-2-objects
# min perf: blocked and unblocked 1 handlers in  0.000 seconds
ok 7 /signal/handler/block-many
# End of handler tests
# End of signal tests
PASS: glib/signal-handler.test
Running test: glib/testfilemonitor.test
TAP version 14
# random seed: R02S4577e4d781ac3969b2d0c71a8290d097
1..8
# Start of monitor tests
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_PC8V42
# Using GFileMonitor GInotifyFileMonitor
ok 1 /monitor/atomic-replace
# slow test /monitor/atomic-replace executed in 2.00 secs
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_JB5V42
# Using GFileMonitor GInotifyFileMonitor
ok 2 /monitor/file-changes
# slow test /monitor/file-changes executed in 2.50 secs
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_YTWJ42
# Using GFileMonitor GInotifyFileMonitor
Executing: glib/testfilemonitor.test
ok 3 /monitor/dir-monitor
# slow test /monitor/dir-monitor executed in 3.50 secs
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_7RXV42
# Using GFileMonitor GInotifyFileMonitor
Executing: glib/testfilemonitor.test
Executing: glib/testfilemonitor.test
Executing: glib/testfilemonitor.test
Executing: glib/testfilemonitor.test
Executing: glib/testfilemonitor.test
ok 4 /monitor/dir-not-existent
# slow test /monitor/dir-not-existent executed in 25.02 secs
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_O4SW42
# Using GFileMonitor 0 GInotifyFileMonitor
# Using GFileMonitor 1 GInotifyFileMonitor
Executing: glib/testfilemonitor.test
ok 5 /monitor/cross-dir-moves
# slow test /monitor/cross-dir-moves executed in 2.00 secs
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_RBPW42
# /monitor/finalize-in-callback summary: Test that finalization of a GFileMonitor in one of its callbacks doesn?t cause a deadlock.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/1941
ok 6 /monitor/finalize-in-callback
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_XLQW42
# /monitor/root summary: Test that GFileMonitor can monitor the root directory.
# Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3241
ok 7 /monitor/root
# Start of file tests
# Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_LNQW42
# Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=755721
# Running with hard link tests
# Using GFileMonitor GInotifyFileMonitor
# Event 0 at expected index 7 skipped because it is marked as optional
# Event 2 at expected index 11 skipped because it is marked as optional
ok 8 /monitor/file/hard-links
# slow test /monitor/file/hard-links executed in 3.50 secs
# End of file tests
# End of monitor tests
PASS: glib/testfilemonitor.test
Running test: glib/bookmarkfile.test
TAP version 14
# random seed: R02Sb9d807a8cd852631a37b155c9852ee64
1..96
# Start of bookmarks tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/system-config1:/var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/system-data1:/var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/load-from-data-dirs/.dirs/runtime
ok 1 /bookmarks/load-from-data-dirs
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/to-file/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/to-file/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/to-file/.dirs/system-config1:/var/volatile/tmp/bookmarks/to-file/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/to-file/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/to-file/.dirs/system-data1:/var/volatile/tmp/bookmarks/to-file/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/to-file/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/to-file/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/to-file/.dirs/runtime
# Roundtrip from newly created bookmark file /var/volatile/tmp/bookmarkfile-test-IGRL42.xbel
# Roundtrip from a valid bookmark file
ok 2 /bookmarks/to-file
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/move-item/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/move-item/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/move-item/.dirs/system-config1:/var/volatile/tmp/bookmarks/move-item/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/move-item/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/move-item/.dirs/system-data1:/var/volatile/tmp/bookmarks/move-item/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/move-item/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/move-item/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/move-item/.dirs/runtime
ok 3 /bookmarks/move-item
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/corner-cases/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/corner-cases/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/corner-cases/.dirs/system-config1:/var/volatile/tmp/bookmarks/corner-cases/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/corner-cases/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/corner-cases/.dirs/system-data1:/var/volatile/tmp/bookmarks/corner-cases/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/corner-cases/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/corner-cases/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/corner-cases/.dirs/runtime
ok 4 /bookmarks/corner-cases
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/misc/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/misc/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/misc/.dirs/system-config1:/var/volatile/tmp/bookmarks/misc/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/misc/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/misc/.dirs/system-data1:/var/volatile/tmp/bookmarks/misc/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/misc/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/misc/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/misc/.dirs/runtime
ok 5 /bookmarks/misc
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/deprecated/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/deprecated/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/deprecated/.dirs/system-config1:/var/volatile/tmp/bookmarks/deprecated/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/deprecated/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/deprecated/.dirs/system-data1:/var/volatile/tmp/bookmarks/deprecated/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/deprecated/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/deprecated/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/deprecated/.dirs/runtime
ok 6 /bookmarks/deprecated
# Start of parse tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-41.xbel/.dirs/runtime
ok 7 /bookmarks/parse/fail-41.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-30.xbel/.dirs/runtime
ok 8 /bookmarks/parse/fail-30.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/valid-01.xbel/.dirs/runtime
ok 9 /bookmarks/parse/valid-01.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-16.xbel/.dirs/runtime
ok 10 /bookmarks/parse/fail-16.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-08.xbel/.dirs/runtime
ok 11 /bookmarks/parse/fail-08.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-23.xbel/.dirs/runtime
ok 12 /bookmarks/parse/fail-23.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-15.xbel/.dirs/runtime
ok 13 /bookmarks/parse/fail-15.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-22.xbel/.dirs/runtime
ok 14 /bookmarks/parse/fail-22.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-12.xbel/.dirs/runtime
ok 15 /bookmarks/parse/fail-12.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-35.xbel/.dirs/runtime
ok 16 /bookmarks/parse/fail-35.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-17.xbel/.dirs/runtime
ok 17 /bookmarks/parse/fail-17.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-18.xbel/.dirs/runtime
ok 18 /bookmarks/parse/fail-18.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-06.xbel/.dirs/runtime
ok 19 /bookmarks/parse/fail-06.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/runtime
ok 20 /bookmarks/parse/fail-19.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-21.xbel/.dirs/runtime
ok 21 /bookmarks/parse/fail-21.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-28.xbel/.dirs/runtime
ok 22 /bookmarks/parse/fail-28.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-34.xbel/.dirs/runtime
ok 23 /bookmarks/parse/fail-34.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-20.xbel/.dirs/runtime
ok 24 /bookmarks/parse/fail-20.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-42.xbel/.dirs/runtime
ok 25 /bookmarks/parse/fail-42.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-02.xbel/.dirs/runtime
ok 26 /bookmarks/parse/fail-02.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-33.xbel/.dirs/runtime
ok 27 /bookmarks/parse/fail-33.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-05.xbel/.dirs/runtime
ok 28 /bookmarks/parse/fail-05.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-07.xbel/.dirs/runtime
ok 29 /bookmarks/parse/fail-07.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-31.xbel/.dirs/runtime
ok 30 /bookmarks/parse/fail-31.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-36.xbel/.dirs/runtime
ok 31 /bookmarks/parse/fail-36.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-39.xbel/.dirs/runtime
ok 32 /bookmarks/parse/fail-39.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-24.xbel/.dirs/runtime
ok 33 /bookmarks/parse/fail-24.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-26.xbel/.dirs/runtime
ok 34 /bookmarks/parse/fail-26.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-37.xbel/.dirs/runtime
ok 35 /bookmarks/parse/fail-37.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-13.xbel/.dirs/runtime
ok 36 /bookmarks/parse/fail-13.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-01.xbel/.dirs/runtime
ok 37 /bookmarks/parse/fail-01.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-25.xbel/.dirs/runtime
ok 38 /bookmarks/parse/fail-25.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-32.xbel/.dirs/runtime
ok 39 /bookmarks/parse/fail-32.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/valid-02.xbel/.dirs/runtime
ok 40 /bookmarks/parse/valid-02.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/valid-03.xbel/.dirs/runtime
ok 41 /bookmarks/parse/valid-03.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-29.xbel/.dirs/runtime
ok 42 /bookmarks/parse/fail-29.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-40.xbel/.dirs/runtime
ok 43 /bookmarks/parse/fail-40.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-38.xbel/.dirs/runtime
ok 44 /bookmarks/parse/fail-38.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-14.xbel/.dirs/runtime
ok 45 /bookmarks/parse/fail-14.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-27.xbel/.dirs/runtime
ok 46 /bookmarks/parse/fail-27.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-11.xbel/.dirs/runtime
ok 47 /bookmarks/parse/fail-11.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-03.xbel/.dirs/runtime
ok 48 /bookmarks/parse/fail-03.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-10.xbel/.dirs/runtime
ok 49 /bookmarks/parse/fail-10.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-09.xbel/.dirs/runtime
ok 50 /bookmarks/parse/fail-09.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-04.xbel/.dirs/runtime
ok 51 /bookmarks/parse/fail-04.xbel
# End of parse tests
# Start of copy tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-41.xbel/.dirs/runtime
ok 52 /bookmarks/copy/fail-41.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-30.xbel/.dirs/runtime
ok 53 /bookmarks/copy/fail-30.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/valid-01.xbel/.dirs/runtime
ok 54 /bookmarks/copy/valid-01.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-16.xbel/.dirs/runtime
ok 55 /bookmarks/copy/fail-16.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-08.xbel/.dirs/runtime
ok 56 /bookmarks/copy/fail-08.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-23.xbel/.dirs/runtime
ok 57 /bookmarks/copy/fail-23.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-15.xbel/.dirs/runtime
ok 58 /bookmarks/copy/fail-15.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-22.xbel/.dirs/runtime
ok 59 /bookmarks/copy/fail-22.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-12.xbel/.dirs/runtime
ok 60 /bookmarks/copy/fail-12.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-35.xbel/.dirs/runtime
ok 61 /bookmarks/copy/fail-35.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-17.xbel/.dirs/runtime
ok 62 /bookmarks/copy/fail-17.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-18.xbel/.dirs/runtime
ok 63 /bookmarks/copy/fail-18.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-06.xbel/.dirs/runtime
ok 64 /bookmarks/copy/fail-06.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/runtime
ok 65 /bookmarks/copy/fail-19.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-21.xbel/.dirs/runtime
ok 66 /bookmarks/copy/fail-21.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-28.xbel/.dirs/runtime
ok 67 /bookmarks/copy/fail-28.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-34.xbel/.dirs/runtime
ok 68 /bookmarks/copy/fail-34.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-20.xbel/.dirs/runtime
ok 69 /bookmarks/copy/fail-20.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-42.xbel/.dirs/runtime
ok 70 /bookmarks/copy/fail-42.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-02.xbel/.dirs/runtime
ok 71 /bookmarks/copy/fail-02.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-33.xbel/.dirs/runtime
ok 72 /bookmarks/copy/fail-33.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-05.xbel/.dirs/runtime
ok 73 /bookmarks/copy/fail-05.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-07.xbel/.dirs/runtime
ok 74 /bookmarks/copy/fail-07.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-31.xbel/.dirs/runtime
ok 75 /bookmarks/copy/fail-31.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-36.xbel/.dirs/runtime
ok 76 /bookmarks/copy/fail-36.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-39.xbel/.dirs/runtime
ok 77 /bookmarks/copy/fail-39.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-24.xbel/.dirs/runtime
ok 78 /bookmarks/copy/fail-24.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-26.xbel/.dirs/runtime
ok 79 /bookmarks/copy/fail-26.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-37.xbel/.dirs/runtime
ok 80 /bookmarks/copy/fail-37.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-13.xbel/.dirs/runtime
ok 81 /bookmarks/copy/fail-13.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-01.xbel/.dirs/runtime
ok 82 /bookmarks/copy/fail-01.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-25.xbel/.dirs/runtime
ok 83 /bookmarks/copy/fail-25.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-32.xbel/.dirs/runtime
ok 84 /bookmarks/copy/fail-32.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/valid-02.xbel/.dirs/runtime
ok 85 /bookmarks/copy/valid-02.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/valid-03.xbel/.dirs/runtime
ok 86 /bookmarks/copy/valid-03.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-29.xbel/.dirs/runtime
ok 87 /bookmarks/copy/fail-29.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-40.xbel/.dirs/runtime
ok 88 /bookmarks/copy/fail-40.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-38.xbel/.dirs/runtime
ok 89 /bookmarks/copy/fail-38.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-14.xbel/.dirs/runtime
ok 90 /bookmarks/copy/fail-14.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-27.xbel/.dirs/runtime
ok 91 /bookmarks/copy/fail-27.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-11.xbel/.dirs/runtime
ok 92 /bookmarks/copy/fail-11.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-03.xbel/.dirs/runtime
ok 93 /bookmarks/copy/fail-03.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-10.xbel/.dirs/runtime
ok 94 /bookmarks/copy/fail-10.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-09.xbel/.dirs/runtime
ok 95 /bookmarks/copy/fail-09.xbel
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-04.xbel/.dirs/runtime
ok 96 /bookmarks/copy/fail-04.xbel
# End of copy tests
# End of bookmarks tests
PASS: glib/bookmarkfile.test
Running test: glib/error.test
TAP version 14
# random seed: R02Sba02ce2f33e5e7edf7fd01173d9ef931
1..3
# Start of error tests
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/error/from-errno/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/error/from-errno/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/error/from-errno/.dirs/system-config1:/var/volatile/tmp/error/from-errno/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/error/from-errno/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/error/from-errno/.dirs/system-data1:/var/volatile/tmp/error/from-errno/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/error/from-errno/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/error/from-errno/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/error/from-errno/.dirs/runtime
ok 1 /error/from-errno
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/error/from-file-error/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/error/from-file-error/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/error/from-file-error/.dirs/system-config1:/var/volatile/tmp/error/from-file-error/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/error/from-file-error/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/error/from-file-error/.dirs/system-data1:/var/volatile/tmp/error/from-file-error/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/error/from-file-error/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/error/from-file-error/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/error/from-file-error/.dirs/runtime
ok 2 /error/from-file-error
# GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/error/from-win32-error/.dirs/home
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/error/from-win32-error/.dirs/cache
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/error/from-win32-error/.dirs/system-config1:/var/volatile/tmp/error/from-win32-error/.dirs/system-config2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/error/from-win32-error/.dirs/config
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/error/from-win32-error/.dirs/system-data1:/var/volatile/tmp/error/from-win32-error/.dirs/system-data2
# GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/error/from-win32-error/.dirs/data
# GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/error/from-win32-error/.dirs/state
# GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/error/from-win32-error/.dirs/runtime
ok 3 /error/from-win32-error # SKIP Windows error codes can only be checked on Windows
# End of error tests
PASS: glib/error.test
Running test: glib/assert-msg-test.py.test
TAP version 13
ok 1 __main__.TestAssertMessage.test_gassert
# assert-msg-test: /usr/libexec/installed-tests/glib/assert-msg-test
# tmpdir: /tmp/tmp59oi7wir
# Running: ['/usr/libexec/installed-tests/glib/assert-msg-test']
# Return code: -6
# Output:
#  Bail out! GLib:ERROR:/usr/src/debug/glib-2.0/2.84.0/glib/tests/assert-msg-test.c:31:main: assertion failed: (42 < 0)
# Error:
#  **
# GLib:ERROR:/usr/src/debug/glib-2.0/2.84.0/glib/tests/assert-msg-test.c:31:main: assertion failed: (42 < 0)
ok 2 __main__.TestAssertMessage.test_gdb_gassert # SKIP GDB is not installed, skipping this test!
# assert-msg-test: /usr/libexec/installed-tests/glib/assert-msg-test
# tmpdir: /tmp/tmpu3omrlmc
1..2
PASS: glib/assert-msg-test.py.test
Running test: glib/rec-mutex.test
TAP version 14
# random seed: R02S0084514d8d83152899c16d7fba4a4b08
1..29
# Start of thread tests
ok 1 /thread/rec-mutex1
ok 2 /thread/rec-mutex2
ok 3 /thread/rec-mutex3
ok 4 /thread/rec-mutex4
# Start of rec-mutex tests
# Start of perf tests
# Start of uncontended tests
# max perf: inf mips
ok 5 /thread/rec-mutex/perf/uncontended/depth1
# max perf: 1.000000 mips
ok 6 /thread/rec-mutex/perf/uncontended/depth2
# max perf: 1.000000 mips
ok 7 /thread/rec-mutex/perf/uncontended/depth3
# max perf: inf mips
ok 8 /thread/rec-mutex/perf/uncontended/depth4
# max perf: inf mips
ok 9 /thread/rec-mutex/perf/uncontended/depth5
# End of uncontended tests
# Start of contended1 tests
# max perf: inf mips
ok 10 /thread/rec-mutex/perf/contended1/depth1
# max perf: 2.000000 mips
ok 11 /thread/rec-mutex/perf/contended1/depth2
# max perf: inf mips
ok 12 /thread/rec-mutex/perf/contended1/depth3
# max perf: inf mips
ok 13 /thread/rec-mutex/perf/contended1/depth4
# max perf: inf mips
ok 14 /thread/rec-mutex/perf/contended1/depth5
# End of contended1 tests
# Start of contended2 tests
# max perf: inf mips
ok 15 /thread/rec-mutex/perf/contended2/depth1
# max perf: inf mips
ok 16 /thread/rec-mutex/perf/contended2/depth2
# max perf: inf mips
ok 17 /thread/rec-mutex/perf/contended2/depth3
# max perf: inf mips
ok 18 /thread/rec-mutex/perf/contended2/depth4
# max perf: inf mips
ok 19 /thread/rec-mutex/perf/contended2/depth5
# End of contended2 tests
# Start of contended3 tests
# max perf: 4.000000 mips
ok 20 /thread/rec-mutex/perf/contended3/depth1
# max perf: inf mips
ok 21 /thread/rec-mutex/perf/contended3/depth2
# max perf: 4.000000 mips
ok 22 /thread/rec-mutex/perf/contended3/depth3
# max perf: 4.000000 mips
ok 23 /thread/rec-mutex/perf/contended3/depth4
# max perf: 4.000000 mips
ok 24 /thread/rec-mutex/perf/contended3/depth5
# End of contended3 tests
# Start of contended4 tests
# max perf: inf mips
ok 25 /thread/rec-mutex/perf/contended4/depth1
# max perf: 1.000000 mips
ok 26 /thread/rec-mutex/perf/contended4/depth2
# max perf: 5.000000 mips
ok 27 /thread/rec-mutex/perf/contended4/depth3
# max perf: 5.000000 mips
ok 28 /thread/rec-mutex/perf/contended4/depth4
# max perf: 5.000000 mips
ok 29 /thread/rec-mutex/perf/contended4/depth5
# End of contended4 tests
# End of perf tests
# End of rec-mutex tests
# End of thread tests
PASS: glib/rec-mutex.test
Running test: glib/overflow-fallback.test
TAP version 14
# random seed: R02S09edd865a0c88115bee1ce9f6ec896da
1..6
# Start of glib tests
# Start of checked-math tests
ok 1 /glib/checked-math/guint-add
ok 2 /glib/checked-math/guint-mul
ok 3 /glib/checked-math/guint64-add
ok 4 /glib/checked-math/guint64-mul
ok 5 /glib/checked-math/gsize-add
ok 6 /glib/checked-math/gsize-mul
# End of checked-math tests
# End of glib tests
PASS: glib/overflow-fallback.test
SUMMARY: total=291; passed=290; skipped=1; failed=0; user=178.2s; system=95.8s; maxrss=166296
+ userdel glib2-test
DURATION: 274
