START: ptest-runner 2025-05-08T13:40 + 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/portal-support-flatpak-network-only.test TAP version 14 # random seed: R02Sa923de7fa6349cf91be4bc325aedcd71 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/gthash.test TAP version 14 # random seed: R02S8221b930dc10b4004cf22d5cda367a1c 1..1 # Start of gthash tests ok 1 /gthash/build-retrieve # End of gthash tests PASS: glib/gthash.test Running test: glib/fileattributematcher.test TAP version 14 # random seed: R02S5b58f492f25327aad58c79ee94c39a27 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/refcount-macro.test TAP version 14 # random seed: R02S857fb65919ca133e3820e91777a5bd2b 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/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/utf8-validate.test TAP version 14 # random seed: R02Sb60803d9dd6b3da64aee5b9cc4bb10c4 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/macros-c-17.test TAP version 14 # random seed: R02S6d5e908f6d23515b8d34d9323fded685 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/bookmarkfile.test TAP version 14 # random seed: R02S34b19c2b2878708e7fbb3c32f52f4d9b 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-L90B62.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-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 7 /bookmarks/parse/fail-19.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/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 9 /bookmarks/parse/fail-22.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 10 /bookmarks/parse/fail-11.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-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 12 /bookmarks/parse/fail-29.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 13 /bookmarks/parse/valid-02.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 14 /bookmarks/parse/fail-20.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 15 /bookmarks/parse/fail-01.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 16 /bookmarks/parse/fail-28.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 17 /bookmarks/parse/fail-35.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 18 /bookmarks/parse/fail-25.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-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 20 /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 21 /bookmarks/parse/fail-38.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 22 /bookmarks/parse/valid-03.xbel # 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 23 /bookmarks/parse/fail-41.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 24 /bookmarks/parse/fail-21.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 25 /bookmarks/parse/fail-24.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 26 /bookmarks/parse/fail-33.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 27 /bookmarks/parse/fail-15.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 28 /bookmarks/parse/fail-34.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 29 /bookmarks/parse/fail-05.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 30 /bookmarks/parse/fail-13.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 31 /bookmarks/parse/fail-04.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 32 /bookmarks/parse/fail-37.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 33 /bookmarks/parse/fail-03.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 34 /bookmarks/parse/fail-42.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 35 /bookmarks/parse/fail-16.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 36 /bookmarks/parse/fail-17.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 37 /bookmarks/parse/fail-02.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 38 /bookmarks/parse/fail-12.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 39 /bookmarks/parse/fail-14.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 40 /bookmarks/parse/fail-18.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 41 /bookmarks/parse/valid-01.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 42 /bookmarks/parse/fail-31.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 43 /bookmarks/parse/fail-23.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 44 /bookmarks/parse/fail-07.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 45 /bookmarks/parse/fail-39.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 46 /bookmarks/parse/fail-09.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 47 /bookmarks/parse/fail-10.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 48 /bookmarks/parse/fail-36.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 49 /bookmarks/parse/fail-27.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 50 /bookmarks/parse/fail-26.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 51 /bookmarks/parse/fail-32.xbel # End of parse tests # Start of copy tests # 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 52 /bookmarks/copy/fail-19.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/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 54 /bookmarks/copy/fail-22.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 55 /bookmarks/copy/fail-11.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-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 57 /bookmarks/copy/fail-29.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 58 /bookmarks/copy/valid-02.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 59 /bookmarks/copy/fail-20.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 60 /bookmarks/copy/fail-01.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 61 /bookmarks/copy/fail-28.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 62 /bookmarks/copy/fail-35.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 63 /bookmarks/copy/fail-25.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-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 65 /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 66 /bookmarks/copy/fail-38.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 67 /bookmarks/copy/valid-03.xbel # 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 68 /bookmarks/copy/fail-41.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 69 /bookmarks/copy/fail-21.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 70 /bookmarks/copy/fail-24.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 71 /bookmarks/copy/fail-33.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 72 /bookmarks/copy/fail-15.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 73 /bookmarks/copy/fail-34.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 74 /bookmarks/copy/fail-05.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 75 /bookmarks/copy/fail-13.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 76 /bookmarks/copy/fail-04.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 77 /bookmarks/copy/fail-37.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 78 /bookmarks/copy/fail-03.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 79 /bookmarks/copy/fail-42.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 80 /bookmarks/copy/fail-16.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 81 /bookmarks/copy/fail-17.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 82 /bookmarks/copy/fail-02.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 83 /bookmarks/copy/fail-12.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 84 /bookmarks/copy/fail-14.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 85 /bookmarks/copy/fail-18.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 86 /bookmarks/copy/valid-01.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 87 /bookmarks/copy/fail-31.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 88 /bookmarks/copy/fail-23.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 89 /bookmarks/copy/fail-07.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 90 /bookmarks/copy/fail-39.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 91 /bookmarks/copy/fail-09.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 92 /bookmarks/copy/fail-10.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 93 /bookmarks/copy/fail-36.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 94 /bookmarks/copy/fail-27.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 95 /bookmarks/copy/fail-26.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 96 /bookmarks/copy/fail-32.xbel # End of copy tests # End of bookmarks tests PASS: glib/bookmarkfile.test Running test: glib/charset.test TAP version 14 # random seed: R02Sc7d7ccdbff8b810ea0c2a250f341a861 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/gobject-query.py.test TAP version 13 ok 1 __main__.TestGobjectQuery.test_froots # gobject-query: /usr/bin/gobject-query # tmpdir: /tmp/tmpcgiq4jk0 # 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/tmpxgq_6uge # Running: ['/usr/bin/gobject-query', '--help'] # Return code: 0 # Output: # usage: gobject-query [-r ] [-{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/tmpzm_bue46 # 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/tmpwg8p1rut # Running: ['/usr/bin/gobject-query', '--version'] # Return code: 0 # Output: # 2.84.1 # Error: 1..4 PASS: glib/gobject-query.py.test Running test: glib/cxx-03.test TAP version 14 # random seed: R02S6a72aba1ba367a56e84dec09e4f1e277 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/1bit-mutex.test TAP version 14 # random seed: R02S4e00aabe7aeccb0f808ab1f3e5bdbb82 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.78 secs ok 2 /glib/1bit-mutex/pointer # slow test /glib/1bit-mutex/pointer executed in 1.75 secs # End of 1bit-mutex tests # End of glib tests PASS: glib/1bit-mutex.test Running test: glib/repository.test TAP version 14 # random seed: R02Se6108dcc5821f5c0deb3b3c92f945d8d 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/convert.test TAP version 14 # random seed: R02S0d31830dfdc70bc3a7a776a3990e9d09 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/function-info.test TAP version 14 # random seed: R02S3668da102f0149cb68db6cb98eea7e9f 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/gi-inspect-typelib.py.test TAP version 13 ok 1 __main__.TestGIInspectTypelibCommandLine.test_help # gi-inspect-typelib: /usr/bin/gi-inspect-typelib # tmpdir: /tmp/tmpqg6cl60t # 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/tmpzj8cezcm # 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/tmpxfd0vo8l # 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/tmp4_zbx0gc # 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/tmpwzkigrdu # 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/tmpx872nu0l # 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/tmp3nh9bgzg # 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/tmph1gvmrk3 # 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/tmpsek_5h7r # 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/tmpvl_wxj9v # 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/tmp24vichdw # 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/tmpzsctmb5s # 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/network-monitor.test TAP version 14 # random seed: R02S22fcb0bbef58fe69fe563f6f315cfefd 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/socket-address.test TAP version 14 # random seed: R02S53775054e564e6f4b457e9f515dd1c09 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/gdatetime.test TAP version 14 # random seed: R02See00aa1f083f2e83b7ef77c71eb830db 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/scannerapi.test TAP version 14 # random seed: R02Sc1539752514da5b1544b1afd93af8dbb 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/portal-support-env-var.test TAP version 14 # random seed: R02S5d33a4f2df9e7858fdb2cd668b47bfa3 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/converter-stream.test TAP version 14 # random seed: R02Saee34a599251a8229ccbc1270ce05116 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 0x55929d307290 and GSocketClientAsyncConnectData 0x55929d3040a0 # 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 0x55929cf29380 for GSocketClientAsyncConnectData 0x55929d3040a0 # 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/pattern.test TAP version 14 # random seed: R02S213f2b330d423bdc910b03973676d63f 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/rec-mutex.test TAP version 14 # random seed: R02S03dfc7ed55d74a97bfc5cb9a62019845 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: 1.000000 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: inf mips ok 11 /thread/rec-mutex/perf/contended1/depth2 # max perf: inf mips ok 12 /thread/rec-mutex/perf/contended1/depth3 # max perf: 2.000000 mips ok 13 /thread/rec-mutex/perf/contended1/depth4 # max perf: 2.000000 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: 3.000000 mips ok 16 /thread/rec-mutex/perf/contended2/depth2 # max perf: 3.000000 mips ok 17 /thread/rec-mutex/perf/contended2/depth3 # max perf: 3.000000 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: 2.000000 mips ok 20 /thread/rec-mutex/perf/contended3/depth1 # max perf: 2.000000 mips ok 21 /thread/rec-mutex/perf/contended3/depth2 # max perf: 2.000000 mips ok 22 /thread/rec-mutex/perf/contended3/depth3 # max perf: 0.250000 mips ok 23 /thread/rec-mutex/perf/contended3/depth4 # max perf: 1.333333 mips ok 24 /thread/rec-mutex/perf/contended3/depth5 # End of contended3 tests # Start of contended4 tests # max perf: 0.500000 mips ok 25 /thread/rec-mutex/perf/contended4/depth1 # max perf: 0.625000 mips ok 26 /thread/rec-mutex/perf/contended4/depth2 # max perf: 5.000000 mips ok 27 /thread/rec-mutex/perf/contended4/depth3 # max perf: 2.500000 mips ok 28 /thread/rec-mutex/perf/contended4/depth4 # max perf: 1.250000 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/win32-appinfo.test TAP version 14 # random seed: R02S6525debab3eed62eec14ca98d48e7c3a 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/hmac.test TAP version 14 # random seed: R02S27aa582ab75bb6095949908eadca8c41 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/string.test TAP version 14 # random seed: R02S1e92eb3fc6a718ca4567d52ff331f88f 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/slist.test TAP version 14 # random seed: R02Se5ade59e1221283c0771fe8cd3c97b3f 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/mount-operation.test TAP version 14 # random seed: R02S6385bd0c31572c9e0b0040af734be172 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/mappedfile.test TAP version 14 # random seed: R02Sa8f6fe621b60af9862ecad59cc9b8d05 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/atomic.test TAP version 14 # random seed: R02S0ee244e691251a01a5593c797b4b56a5 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/testing.test TAP version 14 # random seed: R02S2d1d4fde76cd403872578ca678e87db2 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/dir.test TAP version 14 # random seed: R02S16ef37c076832af375dbfe7f0643c153 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/cond.test TAP version 14 # random seed: R02Sfb62270cfd8e5826a924b1e2cca25d96 1..4 # Start of thread tests ok 1 /thread/cond1 ok 2 /thread/cond2 # Start of cond tests Executing: glib/cond.test 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/portal-support-flatpak-full.test TAP version 14 # random seed: R02S49473241cc74bdd17fa8199bc9105066 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/gdbus-peer-object-manager.test TAP version 14 # random seed: R02S520208f11541eb9f75f544dc045e4e1d 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/utils-c-11.test TAP version 14 # random seed: R02Saf0aaf2a110fb195f19bc974b3545c24 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/utf8-performance.test TAP version 14 # random seed: R02S1349f5145a04ad106a714b23f2a8000d 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: inf 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: inf 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: 160.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: inf 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: 43.0 MB/s ok 29 /utf8/perf/utf8_validate/ascii # max perf: inf MB/s ok 30 /utf8/perf/utf8_validate/latin1 # max perf: inf MB/s ok 31 /utf8/perf/utf8_validate/cyrillic # max perf: inf MB/s ok 32 /utf8/perf/utf8_validate/han # End of utf8_validate tests # Start of utf8_validate-sized tests # max perf: inf 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: inf 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/cxx-17.test TAP version 14 # random seed: R02Scdabfecdd2710a02c1f3d8c993afeb57 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/markup-collect.test TAP version 14 # random seed: R02S309a3fe9bdfc1c272f893f52177e22b9 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/io-stream.test TAP version 14 # random seed: R02S6fb0696ba148934ecbb121ca3c479d00 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/type.test TAP version 14 # random seed: R02Sde455cea107ebf5836ce41394b12e6b8 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/unix-fd.test TAP version 14 # random seed: R02S7cb8f7577771b0cc95156b99f46f2202 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/unix.test TAP version 14 # random seed: R02S84143ce1206f5a5855c4eb9aa4455214 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 Executing: glib/unix.test 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 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/autoptr-girepository.test TAP version 14 # random seed: R02S82013f61bdcdc8878ae83fcd408af8c1 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/live-g-file.test TAP version 14 # random seed: R02Sfeea6742364594b23ed2d00d5da5b78b 1..13 # Start of live-g-file tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/system-config1:/var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/system-data1:/var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/prep_clean_structure/.dirs/runtime # Cleaning target testing structure in '/var/volatile/tmp/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/create_structure/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/create_structure/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/create_structure/.dirs/system-config1:/var/volatile/tmp/live-g-file/create_structure/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/create_structure/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/create_structure/.dirs/system-data1:/var/volatile/tmp/live-g-file/create_structure/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/create_structure/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/create_structure/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/create_structure/.dirs/runtime # # Going to create testing structure in '/var/volatile/tmp/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_initial_structure/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_initial_structure/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_initial_structure/.dirs/runtime # Testing sample structure in '/var/volatile/tmp/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_traverse_structure/.dirs/runtime # Traversing through the sample structure in '/var/volatile/tmp/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_enumerate/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_enumerate/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_enumerate/.dirs/runtime # Test enumerate '/var/volatile/tmp/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_open/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_open/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_open/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_open/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_open/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_open/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_open/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_open/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_open/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_open/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_create/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_create/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_create/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_create/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_create/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_create/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_create/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_create/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_create/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_create/.dirs/runtime # test_create: 'dir1' # error code 3 = Error opening file ?/var/volatile/tmp/testdir_live-g-file/dir1?: Is a directory # test_create: 'dir1/subdir' # error code 3 = Error opening file ?/var/volatile/tmp/testdir_live-g-file/dir1/subdir?: Is a directory # test_create: 'dir2' # error code 2 = Error opening file ?/var/volatile/tmp/testdir_live-g-file/dir2?: File exists # test_create: 'normal_file' # error code 2 = Error opening file ?/var/volatile/tmp/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/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/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_copy_move/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_copy_move/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_copy_move/.dirs/runtime # 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/testdir_live-g-file/dir_no-write/lost_symlink: Permission denied ok 8 /live-g-file/test_copy_move # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_delete/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_delete/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_delete/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_delete/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_delete/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_delete/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_delete/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_delete/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_delete/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_delete/.dirs/runtime # Deleting dir1, path = /var/volatile/tmp/testdir_live-g-file/dir1 # result = 0, error = Error removing file /var/volatile/tmp/testdir_live-g-file/dir1: Directory not empty # Deleting dir2, path = /var/volatile/tmp/testdir_live-g-file/dir2 # result = 0, error = Error removing file /var/volatile/tmp/testdir_live-g-file/dir2: No such file or directory # Deleting executable_file, path = /var/volatile/tmp/testdir_live-g-file/executable_file # result = 0, error = Error trashing file /var/volatile/tmp/testdir_live-g-file/executable_file: No such file or directory # Deleting readonly_file, path = /var/volatile/tmp/testdir_live-g-file/readonly_file # Deleting dir_pr?i?lis? z, path = /var/volatile/tmp/testdir_live-g-file/dir_pr?i?lis? z # Deleting not_exists, path = /var/volatile/tmp/testdir_live-g-file/not_exists # result = 0, error = Error removing file /var/volatile/tmp/testdir_live-g-file/not_exists: No such file or directory # Deleting not_exists, path = /var/volatile/tmp/testdir_live-g-file/not_exists # result = 0, error = Error trashing file /var/volatile/tmp/testdir_live-g-file/not_exists: No such file or directory # Deleting dir_no-execute/file, path = /var/volatile/tmp/testdir_live-g-file/dir_no-execute/file # result = 0, error = Error removing file /var/volatile/tmp/testdir_live-g-file/dir_no-execute/file: No such file or directory # Deleting lost_symlink, path = /var/volatile/tmp/testdir_live-g-file/lost_symlink ok 9 /live-g-file/test_delete # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_make_directory_with_parents/.dirs/runtime # We do not have CAP_DAC_OVERRIDE or equivalent ok 10 /live-g-file/test_make_directory_with_parents # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/final_clean/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/final_clean/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/final_clean/.dirs/system-config1:/var/volatile/tmp/live-g-file/final_clean/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/final_clean/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/final_clean/.dirs/system-data1:/var/volatile/tmp/live-g-file/final_clean/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/final_clean/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/final_clean/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/final_clean/.dirs/runtime # Cleaning target testing structure in '/var/volatile/tmp/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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/sysroot/.dirs/runtime ok 12 /live-g-file/test_unix_is_mountpoint/sysroot # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/system-config1:/var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/system-data1:/var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/live-g-file/test_unix_is_mountpoint/proc/.dirs/runtime 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/types.test TAP version 14 # random seed: R02Scf2c684e34a9103bafbed15cafdb78d2 1..1 # Start of types tests ok 1 /types/basic_types # End of types tests PASS: glib/types.test Running test: glib/objects-refcount1.test TAP version 14 # random seed: R02S0ec9348dd8f2ded3264f298a2fd36b92 1..1 # Start of gobject tests # Start of refcount tests # init 0x558e2431d380 # # init 0x558e2431dd10 # Executing: glib/objects-refcount1.test # dispose 0x558e2431d380! # # dispose 0x558e2431dd10! # 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/srvtarget.test TAP version 14 # random seed: R02S499701e5135c88d4b2ad4d90f77c823c 1..1 # Start of srvtarget tests ok 1 /srvtarget/srv-target-ordering # End of srvtarget tests PASS: glib/srvtarget.test Running test: glib/macros-c-99.test TAP version 14 # random seed: R02S4d048ee346efddd6106790cdcdaab3ff 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/async-splice-output-stream.test TAP version 14 # random seed: R02Sbce3e8125656b318679ebb94dbf3c427 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/atomic-c-89.test TAP version 14 # random seed: R02Sf7bc31f0c059f5b63a792873521390d3 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/basics-gobject.test TAP version 14 # random seed: R02S5b4489230afa096b252f921d552cc169 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: "" # MAIN: call iface print-string on test and derived object: # Iface-FOO: "iface-string-from-test-type" from 0x559a9335eaa0 # Iface-BAR: "iface-string-from-derived-type" from 0x559a9335e8e0 # chaining: # Iface-FOO: "iface-string-from-derived-type" from 0x559a9335e8e0 # private data after initialization: 54321 == 54321 ok 1 /gobject/basics # End of gobject tests PASS: glib/basics-gobject.test Running test: glib/testing-nonfatal.test TAP version 14 # random seed: R02S6f471e1895d9de282bef7b8eb86210e1 ** GLib:ERROR:../glib-2.84.1/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:../glib-2.84.1/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/dynamictests.test TAP version 14 # random seed: R02S8f09464d3a75194b863badec38d983cd 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-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/g-file-info-filesystem-readonly.test TAP version 14 # random seed: R02Sb5e7509b6c91f8928165f3ca5aeafef5 # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=787731 1..2 # Start of g-file-info-filesystem-readonly tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/system-config1:/var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/system-data1:/var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro/.dirs/runtime ok 1 /g-file-info-filesystem-readonly/test-fs-ro # SKIP 'bindfs' and 'fusermount' commands are needed to run this test # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/system-config1:/var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/system-data1:/var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/g-file-info-filesystem-readonly/test-fs-ro-with-mount-monitor/.dirs/runtime 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/accumulator.test TAP version 14 # random seed: R02S0dfad8654e0880fac5241940f6093e19 1..1 # Start of gobject tests ok 1 /gobject/accumulator # End of gobject tests PASS: glib/accumulator.test Running test: glib/unicode-normalize.test TAP version 14 # random seed: R02Sce513a4649ebaed26d0b056694952036 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/converter.test TAP version 14 # random seed: R02S30952d9283f93d72b089fa3ad00d79da 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/permission.test TAP version 14 # random seed: R02S80455de5f5bd7f170103a89555f6e851 1..1 # Start of permission tests ok 1 /permission/simple # End of permission tests PASS: glib/permission.test Running test: glib/gsubprocess.test TAP version 14 # random seed: R02Se5db5f7117a2a8e35b892d8f23242369 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 3.55 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 Executing: glib/gsubprocess.test 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/node.test TAP version 14 # random seed: R02Sc0786edb03aad3ff1e494d3053f1e391 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/readwrite.test TAP version 14 # random seed: R02S7485154ee40fbfdab46adfd6b936adc8 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/bindinggroup.test TAP version 14 # random seed: R02S937690ca7f13ce3e70d2889994a9143a 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/properties-refcount1.test TAP version 14 # random seed: R02S23e64f6cc7863fa9e536e395cf9364f6 1..1 # Start of gobject tests # Start of refcount tests # .e # .b # .c # .d # .f # .e # .b # .f # .d # .c # .e # .b # .f # .d # .c # .e # .b # .f # .d # .c # .b # .e # .f # .d # .b # .c # .e # .f # .c # .d # .b # .d # .e # .c # .f # .b # .d # .e # .f # .c # .b # .d # .f # .e # .c # .b # .d # .f # .e # .c # .b # .d # .f # .e # .b # .c # .d # .f # .e # .b # .c # .d # .f # .e # .b # .c # .d # .f # .e # .b # .c # .d # .e # .f # .b # .d # .c # .e # .f # .b # .e # .d # .f # .c # .b # .e # .b # .e # .d # .c # .f # .b # .e # .d # .f # .c # .b # .e # .d # .f # .c # .b # .e # .d # .f # .c # .b # .e # .d # .f # .c # .b # .e # .d # .f # .c # .b # .e # .d # .f # .b # .c # .e # .d # .f # .c # .b # .e # .d # .f # .c # .b # .e # .d # .f # .b # .c # .e # .f # .d # .b # .c # .e # .f # .d # .c # .b # .e # .f # .d # .b # .c # .f # .e # .d # .b # .c # .f # .d # .e # .b # .c # .f # .b # .d # .e # .c # .f # .b # .e # .d # .d # .b # .c # .f # .e # .c # .d # .c # .b # .c # .f # .e # .d # .e # .b # .f # .c # .e # .d # .b # .f # .e # .c # .d # .b # .c # .f # .d # .d # .e # .b # .f # .d # .c # .b # .f # .e # .c # .b # .d # .f # .e # .b # .d # .c # .f # .d # .e # .b # .c # .f # .e # .d # .b # .d # .e # .f # .c # .c # .b # .e 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/signals.test TAP version 14 # random seed: R02S990bf665a09cf745250108d8513b2684 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/io-channel-basic.test TAP version 14 # random seed: R02S6bbfad636e0fe8491d6c3f330efe8b61 1..1 # Start of gio tests # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02Sf4e68c901d13aaef70258b815fde8c33 # GLib-DEBUG: io-channel-basic: child writing 8+106 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 106 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+141 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 141 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+613 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 613 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4711 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4711 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3098 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3098 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+782 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 782 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1001 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1001 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK Executing: glib/io-channel-basic.test # GLib-DEBUG: io-channel-basic: child writing 8+2468 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2468 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1795 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1795 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4479 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4479 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1302 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1302 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3801 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3801 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+2348 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2348 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4049 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4049 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1746 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1746 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3283 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3283 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+2986 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2986 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3846 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3846 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1607 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1607 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1549 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1549 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3783 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3783 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3741 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3741 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+897 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 897 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+2514 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2514 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+2387 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: 2387 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02Sc2728e36d35feaaf3cfaef0220659f63 # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S0def27b7da0d31b194989cf341098a48 # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02Sdbf99ba9cf9535f22da02c3036687a5b # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S904f5f0168dc3530f424b03893ee1410 # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02Sed37b742f4b73efaabb37ea172649744 # GLib-DEBUG: io-channel-basic: child writing 8+312 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 312 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+728 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 728 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2359 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2359 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+790 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 790 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1494 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 1494 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK Executing: glib/io-channel-basic.test # GLib-DEBUG: io-channel-basic: child writing 8+1459 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1459 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4866 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4866 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+4696 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4696 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1177 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 1177 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1174 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1174 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4020 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4020 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4652 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4652 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+331 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 331 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1413 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1413 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3800 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 3800 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3685 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3685 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3455 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3455 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4900 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4900 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4542 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4542 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+868 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 868 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4552 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4552 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+410 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 410 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2546 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2546 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1560 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1560 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3528 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 3528 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4866 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4866 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4704 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4704 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2002 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2002 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2241 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2241 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1711 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1711 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3486 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3486 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+1943 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 1943 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2763 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2763 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2655 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2655 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3288 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 3288 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+806 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: child writing 8+1559 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 12: 806 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1559 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+1134 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1134 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1148 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1148 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3499 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 3499 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+919 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 919 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3643 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3643 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2842 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2842 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4507 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4507 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+4751 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 4751 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3884 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3884 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4957 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4957 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3748 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3748 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1675 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1675 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2084 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2084 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3326 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3326 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2928 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2928 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1991 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1991 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+673 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 673 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3579 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3579 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3362 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3362 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+940 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 940 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1605 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1605 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+271 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 271 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1625 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1625 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4174 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4174 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2395 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2395 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1964 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1964 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2508 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2508 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1698 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1698 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1658 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1658 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+76 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 76 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4136 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 4136 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2732 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2732 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3246 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3246 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4416 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4416 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4472 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4472 bytes # GLib-DEBUG: io-channel-basic: ...from 12: 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+2853 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2853 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1154 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1154 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3203 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3203 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3789 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3789 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1670 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1670 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3938 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 3938 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2404 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2404 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+330 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 330 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+300 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 300 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3087 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3087 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2683 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2683 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+859 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 859 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+649 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 649 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2889 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2889 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3785 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3785 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+1992 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1992 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3584 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3584 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4543 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4543 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2571 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2571 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2720 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2720 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+668 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 668 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4771 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4771 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2713 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2713 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3824 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: 3824 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+4563 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 4563 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3789 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3789 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK Executing: glib/io-channel-basic.test # GLib-DEBUG: io-channel-basic: child writing 8+4705 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4705 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4554 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4554 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1391 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: 1391 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4527 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4527 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4238 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4238 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4846 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4846 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3252 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: 3252 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4160 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4160 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4788 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4788 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2773 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: 2773 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2632 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: 2632 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK ok 1 /gio/io-basics # slow test /gio/io-basics executed in 12.75 secs # End of gio tests PASS: glib/io-channel-basic.test Running test: glib/pollable.test TAP version 14 # random seed: R02Sb5dbaec2f94b8c49697cba657af6d3bd 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 0x564ebe8e6660 and GSocketClientAsyncConnectData 0x564ebe8e2630 # 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 0x564ebe8eb5e0 for GSocketClientAsyncConnectData 0x564ebe8e2630 # 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 # End of unix tests # End of pollable tests PASS: glib/pollable.test Running test: glib/defaultiface.test TAP version 14 # random seed: R02S66d9185cf4dab5d3c51b6939e5f43776 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/application-command-line.test TAP version 14 # random seed: R02Sc4e3033f108c63d18ad7d683ab748ce0 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/thread-deprecated.test TAP version 14 # random seed: R02S0dce431c6358f68fb860d4a2e8d20724 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.20 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/spawn-singlethread.test TAP version 14 # random seed: R02S4d7af9868646e77185401185e5376495 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/trash.test TAP version 14 # random seed: R02Sbf3397197907092e5a8db78fead5f988 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-trashHCPY52 (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/deprecated-properties.test TAP version 14 # random seed: R02Sf90960ea340129ff0f7ff2e75187fb6d 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/genmarshal.py.test TAP version 13 ok 1 __main__.TestGenmarshal.test_empty_list # glib-genmarshal: /usr/bin/glib-genmarshal # tmpdir: /tmp/tmpf7o9qmxu # /tmp/tmpf7o9qmxu/tmp2prfqhkt.list: # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpf7o9qmxu/tmp2prfqhkt.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 # # G_BEGIN_DECLS # # # G_END_DECLS # # #endif /* __G_CCLOSURE_USER_MARSHAL_MARSHAL_H__ */ # Error: # # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpf7o9qmxu/tmp2prfqhkt.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 # # #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/tmpk6yuiqb6 # 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/tmp5w9qi_le # 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/tmp8hijvs_x # /tmp/tmp8hijvs_x/tmpkbhafrix.list: VOID:BOOLEAN # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmp8hijvs_x/tmpkbhafrix.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 # # G_BEGIN_DECLS # # /* VOID:BOOLEAN (/tmp/tmp8hijvs_x/tmpkbhafrix.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/tmp8hijvs_x/tmpkbhafrix.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 # # #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/tmpohme4biu # /tmp/tmpohme4biu/tmp9fw08pp0.list: VOID:BOOLEAN,INT64 # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpohme4biu/tmp9fw08pp0.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 # # G_BEGIN_DECLS # # /* VOID:BOOLEAN,INT64 (/tmp/tmpohme4biu/tmp9fw08pp0.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/tmpohme4biu/tmp9fw08pp0.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 # # #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/tmpohme4biu/tmp9fw08pp0.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/tmpx5ly8i7l # /tmp/tmpx5ly8i7l/tmp2yc3y_33.list: VOID:PARAM # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpx5ly8i7l/tmp2yc3y_33.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/tmpx5ly8i7l/tmp2yc3y_33.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/tmpx5ly8i7l/tmp2yc3y_33.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/tmpx5ly8i7l/tmp2yc3y_33.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/tmp6m4_t2ti # /tmp/tmp6m4_t2ti/tmp13gl2r6g.list: VOID:STRING # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmp6m4_t2ti/tmp13gl2r6g.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/tmp6m4_t2ti/tmp13gl2r6g.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/tmp6m4_t2ti/tmp13gl2r6g.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/tmp6m4_t2ti/tmp13gl2r6g.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/tmpux5fyfrx # /tmp/tmpux5fyfrx/tmpitfoei9t.list: VOID:VARIANT # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpux5fyfrx/tmpitfoei9t.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/tmpux5fyfrx/tmpitfoei9t.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/tmpux5fyfrx/tmpitfoei9t.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/tmpux5fyfrx/tmpitfoei9t.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/private.test TAP version 14 # random seed: R02Sbbc77a13f18ca8a36e9746a186e120ec 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/checksum.test TAP version 14 # random seed: R02S25e2ae0b92dbf420ea50a7a45dfcc6ba 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/appmonitor.test TAP version 14 # random seed: R02S3513f7f3c80c89358807b741f0def57f 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/gutils-user-database.test TAP version 14 # random seed: R02Sa804b261f05420da73ba3a088d1eb50d 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/tls-database.test TAP version 14 # random seed: R02S6bf497732bcc9bde44e93b39ce9871b5 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/hostutils.test TAP version 14 # random seed: R02S7842f2818bb2c7f0119843a0e2113f67 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/protocol.test TAP version 14 # random seed: R02S898035c6d0ac95f6b012df81bc07ed4c 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/strfuncs.test TAP version 14 # random seed: R02S6299c3bb905455285e7f7dae2ea739b6 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/null-settings-backend.test TAP version 14 # random seed: R02Sbfa399bad2356ea47e6a259ca00d93d8 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/strvbuilder.test TAP version 14 # random seed: R02S88fffc4715e6d58c2ca3c43a3e163d0a 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/date.test TAP version 14 # random seed: R02Sa3e62ac6f6f3c7478ddb4c2017152e21 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/testfilemonitor.test TAP version 14 # random seed: R02S4b39c3627533845052a53c38492ac27b 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_N99A62 # Using GFileMonitor GInotifyFileMonitor Executing: glib/testfilemonitor.test ok 1 /monitor/atomic-replace # slow test /monitor/atomic-replace executed in 2.00 secs # Using temporary directory: /var/volatile/tmp/gio-test-testfilemonitor_E6AB62 # 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_V2TZ52 # 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_0JGA62 # 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_V4JA62 # Using GFileMonitor 0 GInotifyFileMonitor # Using GFileMonitor 1 GInotifyFileMonitor 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_B3LA62 # /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_7KNC62 # /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_MKNC62 # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=755721 # Running with hard link tests # Using GFileMonitor GInotifyFileMonitor Executing: glib/testfilemonitor.test # 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/data-output-stream.test TAP version 14 # random seed: R02Sf86657c1d18f2b158c50a31feee6bd34 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/gdbus-addresses.test TAP version 14 # random seed: R02S7c1d29d2c2484af175ffb20080510b9b 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/utils.test TAP version 14 # random seed: R02S8411317010a570d445d54f86af507bac 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/async-close-output-stream.test TAP version 14 # random seed: R02Sa91db7cf675615ee3586f0079a360505 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/portal-support-none.test TAP version 14 # random seed: R02S64e2c3e12e77cbf681782ec9b18cff21 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/notify-init2.test TAP version 14 # random seed: R02S2162e8047258276f648a4365b64ead9f 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/registered-type-info.test TAP version 14 # random seed: R02Sfed0b2d870ad8c755681fa9d9de1f1c8 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/base64.test TAP version 14 # random seed: R02Sa8b9ea209a979cc759046fcc452afa90 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/binding.test TAP version 14 # random seed: R02S899802be649d23403e6a0b90beb10ab4 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/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/notify-init.test TAP version 14 # random seed: R02S187482da5c8ffd8d2a593761d61fb539 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/unicode.test TAP version 14 # random seed: R02S3e60ed04c19be8e755c8a32faf165902 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/include.test TAP version 14 # random seed: R02Sb51bbff878761c5562a2c4ac0abcf415 1..1 # Start of include tests ok 1 /include/rwlock # End of include tests PASS: glib/include.test Running test: glib/mutex.test TAP version 14 # random seed: R02Seaea4131d5142ef51d1951063886e4dd 1..17 # Start of thread tests ok 1 /thread/mutex1 ok 2 /thread/mutex2 ok 3 /thread/mutex3 ok 4 /thread/mutex4 ok 5 /thread/mutex5 # slow test /thread/mutex5 executed in 1.34 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 # /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 # 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 # /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 # /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 # /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 # /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 # /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 # 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 # /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 # 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 # 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 Executing: glib/mutex.test 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: 2.000000 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: 5.000000 mips ok 11 /thread/mutex/perf/contended/4 # max perf: 6.000000 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: 4.500000 mips ok 15 /thread/mutex/perf/contended/8 # max perf: 10.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/queue.test TAP version 14 # random seed: R02S343e94788556ba2acc07062e47c3cf1e 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:1026217148 # End of random tests # End of queue tests PASS: glib/queue.test Running test: glib/unix-mounts.test TAP version 14 # random seed: R02S99eb843628ba1dcc6fda43a71c9a9499 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/tls-interaction.test TAP version 14 # random seed: R02Sfe45405b57e33f6aeb997f8d5e265dad 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/markup.test TAP version 14 # random seed: R02S9109ef525f902750823424d3470a57d6 1..1 # Start of markup tests ok 1 /markup/stack # End of markup tests PASS: glib/markup.test Running test: glib/init.test TAP version 14 # random seed: R02S4c674401a72bbc336f9c0c9ceadd801f 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/properties-refcount2.test TAP version 14 # random seed: R02S66d3446953f09c06babca5c2ad3064b0 1..1 # Start of gobject tests # Start of refcount tests # init 0x55c37cb40450 # # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # dispose 0x55c37cb40450! # ok 1 /gobject/refcount/properties-2 # End of refcount tests # End of gobject tests PASS: glib/properties-refcount2.test Running test: glib/volumemonitor.test TAP version 14 # random seed: R02Sfb2d6d33aac89bc0c60dd7a3c2939bed # 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/properties-refcount4.test TAP version 14 # random seed: R02S097adf1b5e6fd627a186a991c7a53c5c 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/completion.test TAP version 14 # random seed: R02Seb235be76fdadb3ceb3b8f7288ad6965 1..1 # Start of completion tests ok 1 /completion/test-completion # End of completion tests PASS: glib/completion.test Running test: glib/markup-subparser.test TAP version 14 # random seed: R02Scc950f696eb4dbc433d674c73092ac60 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/cxx-20.test TAP version 14 # random seed: R02S3bbd0216741e0cec642d9de09608ccc1 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/rwlock.test TAP version 14 # random seed: R02S2dc1e8ab66194686cd9cd5f4e5a05c3d 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.65 secs ok 8 /thread/rwlock8 # End of thread tests PASS: glib/rwlock.test Running test: glib/collate.test TAP version 14 # random seed: R02S6fc9651f201e9cf77cc74342a42928f8 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/mapping.test TAP version 14 # random seed: R02S6233b633204e8e2e3ff572370801c56a 1..3 # Start of mapping tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/mapping/flags/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/mapping/flags/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/mapping/flags/.dirs/system-config1:/var/volatile/tmp/mapping/flags/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/mapping/flags/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/mapping/flags/.dirs/system-data1:/var/volatile/tmp/mapping/flags/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/mapping/flags/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/mapping/flags/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/mapping/flags/.dirs/runtime # test_mapping: ok ok 1 /mapping/flags # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/mapping/private/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/mapping/private/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/mapping/private/.dirs/system-config1:/var/volatile/tmp/mapping/private/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/mapping/private/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/mapping/private/.dirs/system-data1:/var/volatile/tmp/mapping/private/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/mapping/private/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/mapping/private/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/mapping/private/.dirs/runtime ok 2 /mapping/private # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/mapping/private-child/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/mapping/private-child/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/mapping/private-child/.dirs/system-config1:/var/volatile/tmp/mapping/private-child/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/mapping/private-child/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/mapping/private-child/.dirs/system-data1:/var/volatile/tmp/mapping/private-child/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/mapping/private-child/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/mapping/private-child/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/mapping/private-child/.dirs/runtime # test_child_private: child spawned # Subtest: /usr/libexec/installed-tests/glib/mapping # random seed: R02Sf3f9b362bd18151d1672e05f3d5657a6 # 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/cache.test TAP version 14 # random seed: R02S58bb0dbb42a392ac54feece22d4e3163 1..1 # Start of cache tests ok 1 /cache/basic # End of cache tests PASS: glib/cache.test Running test: glib/network-monitor-race.test TAP version 14 # random seed: R02S192db9473cf642d6229f8ce33f0dd9d4 1..1 # Start of network-monitor tests # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=793727 ok 1 /network-monitor/create-in-thread # slow test /network-monitor/create-in-thread executed in 2.12 secs # End of network-monitor tests PASS: glib/network-monitor-race.test Running test: glib/inet-address.test TAP version 14 # random seed: R02S2d7931aa48c92efaad2382752f5849d6 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/contenttype.test TAP version 14 # random seed: R02S7ed4400750477f3769a6812bcf0479e5 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/socket-service.test TAP version 14 # random seed: R02S179cb367aa8e81474ac11af0ad8fe0c4 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 0x55f6c1bbfab0 and GSocketClientAsyncConnectData 0x55f6c1b9b1f0 # 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 0x55f6c1bc3ad0 and GSocketClientAsyncConnectData 0x55f6c1bc3770 # 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 0x55f6c1bc3a50 for GSocketClientAsyncConnectData 0x55f6c1b9b1f0 # 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 0x55f6c1bc3a50 for GSocketClientAsyncConnectData 0x55f6c1bc3770 # 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 0x55f6c1bc3ad0 and GSocketClientAsyncConnectData 0x55f6c1bc7dc0 # 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 0x55f6c1bc71c0 for GSocketClientAsyncConnectData 0x55f6c1bc7dc0 # 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 0x55f6c1bc5160 and GSocketClientAsyncConnectData 0x55f6c1bc7760 # 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 0x55f6c1bc8750 for GSocketClientAsyncConnectData 0x55f6c1bc7760 # 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/gdbus-sasl.test TAP version 14 # random seed: R02Sfe079fab0ca3731f0bbf69ec5269ad64 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 b0090741d70740ab253c156e681cb4d0? # New handshake: EXTERNAL without initial response # C:?AUTH EXTERNAL? # Expect: /^DATA$/ # S:?DATA? # C:?DATA 31303030? # Expect: /^OK [0-9a-f]+$/ # S:?OK b0090741d70740ab253c156e681cb4d0? # New handshake: EXTERNAL with empty authorization identity # C:?AUTH EXTERNAL? # Expect: /^DATA$/ # S:?DATA? # C:?DATA? # Expect: /^OK [0-9a-f]+$/ # S:?OK b0090741d70740ab253c156e681cb4d0? # 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 b0090741d70740ab253c156e681cb4d0? ok 1 /gdbus/sasl/server # End of sasl tests # End of gdbus tests PASS: glib/gdbus-sasl.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/tmp1lfiqyem # Running: ['/usr/bin/gi-compile-repository', 'this-is/not/a-file.gir', '--output', '/tmp/tmp1lfiqyem/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/tmp17v14c5u # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GLib-2.0.gir', '--output', '/tmp/tmp17v14c5u/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/tmpoxrpp3jj # 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/tmp1i14w04d # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GObject-2.0.gir', '--output', '/tmp/tmp1i14w04d/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/tmpt_khn8pi # 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 Executing: glib/gi-compile-repository.py.test 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/tmp51ntchac # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/Gio-2.0.gir', '--output', '/tmp/tmp51ntchac/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/tmpgj13a_es # 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/mkenums.py.test TAP version 13 ok 1 __main__.TestMkenums.test_available_in # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpw9smh97t # rspfile: False # /tmp/tmpw9smh97t/tmpm7i28u6w.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmpw9smh97t/tmp1r3oviry.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/tmpw9smh97t/tmp1r3oviry.template', '/tmp/tmpw9smh97t/tmpm7i28u6w.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/tmpw9smh97t/tmpm7i28u6w.h # basename: tmpm7i28u6w.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/tmp2vfjdpmc # rspfile: False # /tmp/tmp2vfjdpmc/tmpw36r6hvn.h: # typedef enum { # ENUM_VALUE_WITH_COMMA = ',', # } TestCommaEnum; # # /tmp/tmp2vfjdpmc/tmplx241wbs.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/tmp2vfjdpmc/tmplx241wbs.template', '/tmp/tmp2vfjdpmc/tmpw36r6hvn.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/tmp2vfjdpmc/tmpw36r6hvn.h # basename: tmpw36r6hvn.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/tmpb5oh46tj # rspfile: False # /tmp/tmpb5oh46tj/tmpzbw6h_y5.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmpb5oh46tj/tmpvlh_p159.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/tmpb5oh46tj/tmpvlh_p159.template', '/tmp/tmpb5oh46tj/tmpzbw6h_y5.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/tmpb5oh46tj/tmpzbw6h_y5.h # basename: tmpzbw6h_y5.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/tmp24c3pz81 # rspfile: False # /tmp/tmp24c3pz81/tmpaclti3om.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/tmp24c3pz81/tmpgrs0wj9h.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/tmp24c3pz81/tmpgrs0wj9h.template', '/tmp/tmp24c3pz81/tmpaclti3om.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/tmp24c3pz81/tmpaclti3om.h # basename: tmpaclti3om.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/tmp3baynv5m # rspfile: False # /tmp/tmp3baynv5m/tmpfxhrdjrw.h: # /tmp/tmp3baynv5m/tmp2lirlbb3.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/tmp3baynv5m/tmp2lirlbb3.template', '/tmp/tmp3baynv5m/tmpfxhrdjrw.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/tmpvzoqqgbk # rspfile: False # /tmp/tmpvzoqqgbk/tmp3qlch77g.template: # Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpvzoqqgbk/tmp3qlch77g.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/tmpmy8gt9uy # rspfile: False # /tmp/tmpmy8gt9uy/tmpo5xyjjpu.h: # typedef enum _SomeEnumIdentifier { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmpmy8gt9uy/tmp45djp0pd.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/tmpmy8gt9uy/tmp45djp0pd.template', '/tmp/tmpmy8gt9uy/tmpo5xyjjpu.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/tmpmy8gt9uy/tmpo5xyjjpu.h # basename: tmpo5xyjjpu.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/tmp_6jczr8s # rspfile: False # /tmp/tmp_6jczr8s/tmp6hsnl4y3.h: # typedef enum { # ENUM_VALUE_PUBLIC1, # /*< private >*/ # ENUM_VALUE_PRIVATE, # } SomeEnumA # # /tmp/tmp_6jczr8s/tmp75dit3vo.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/tmp_6jczr8s/tmp75dit3vo.template', '/tmp/tmp_6jczr8s/tmp6hsnl4y3.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/tmp_6jczr8s/tmp6hsnl4y3.h # basename: tmp6hsnl4y3.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/tmp_6jczr8s/tmpihw7npjh.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE, # /*< public >*/ # ENUM_VALUE_PUBLIC2, # } SomeEnumB; # # /tmp/tmp_6jczr8s/tmp310glto8.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/tmp_6jczr8s/tmp310glto8.template', '/tmp/tmp_6jczr8s/tmpihw7npjh.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/tmp_6jczr8s/tmpihw7npjh.h # basename: tmpihw7npjh.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/tmpz3f4869f # rspfile: False # /tmp/tmpz3f4869f/tmptfkq0xhq.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE = 5, # /*< public >*/ # ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2, # } TestSymbolicEnum; # # /tmp/tmpz3f4869f/tmpkloykgq2.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/tmpz3f4869f/tmpkloykgq2.template', '/tmp/tmpz3f4869f/tmptfkq0xhq.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/tmpz3f4869f/tmptfkq0xhq.h # basename: tmptfkq0xhq.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/tmpj2fva57j # rspfile: False # /tmp/tmpj2fva57j/tmplpssap7_.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/tmpj2fva57j/tmplpssap7_.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/tmpm1hhy9i3 # 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/tmpx41p9z5n # 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/tmpb1bptayl # rspfile: False # /tmp/tmpb1bptayl/tmppacxfk9u.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/tmpb1bptayl/tmppacxfk9u.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/tmpj8shibl3 # rspfile: False # /tmp/tmpj8shibl3/tmpecr938ae.h: # typedef enum { # GEGL_SAMPLER_NEAREST = 0, /*< desc="nearest" >*/ # } GeglSamplerType; # # /tmp/tmpj8shibl3/tmpc8uyhqzg.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/tmpj8shibl3/tmpc8uyhqzg.template', '/tmp/tmpj8shibl3/tmpecr938ae.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/tmpj8shibl3/tmpecr938ae.h # basename: tmpecr938ae.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/tmpmg9gn2zm # rspfile: False # /tmp/tmpmg9gn2zm/tmpo45e0j1x.h: # /* Copyright © La Peña */ # typedef enum { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmpmg9gn2zm/tmpsq7r_r44.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/tmpmg9gn2zm/tmpsq7r_r44.template', '/tmp/tmpmg9gn2zm/tmpo45e0j1x.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/tmpmg9gn2zm/tmpo45e0j1x.h # basename: tmpo45e0j1x.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/tmpnwu6qrdf # rspfile: False # /tmp/tmpnwu6qrdf/tmp9rzrwx1n.template: template # Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpnwu6qrdf/tmp9rzrwx1n.template', '/tmp/tmpnwu6qrdf/tmprg6s76e31.h', '/tmp/tmpnwu6qrdf/tmpf0q94g802.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/tmpnwu6qrdf/tmpsq1pjgkk.template: template # Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmpnwu6qrdf/tmpsq1pjgkk.template', '/tmp/tmpnwu6qrdf/tmpf0q94g802.h', '/tmp/tmpnwu6qrdf/tmprg6s76e31.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/tmpub4xic10 # rspfile: False # /tmp/tmpub4xic10/tmp7oa6tdn7.h: # typedef enum { /*< since=1.0 >*/ # QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0, # } QmiWmsMessageProtocol; # # /tmp/tmpub4xic10/tmp6htg_hnq.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/tmpub4xic10/tmp6htg_hnq.template', '/tmp/tmpub4xic10/tmp7oa6tdn7.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/tmpub4xic10/tmp7oa6tdn7.h # basename: tmp7oa6tdn7.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/tmpp8fbwbtq # rspfile: False # /tmp/tmpp8fbwbtq/tmpkchvfabt.h: # typedef enum { # FOO_VALUE /*< nick="eek, a comma" >*/ # } Foo; # # /tmp/tmpp8fbwbtq/tmp8b7b7__p.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/tmpp8fbwbtq/tmp8b7b7__p.template', '/tmp/tmpp8fbwbtq/tmpkchvfabt.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/tmpp8fbwbtq/tmpkchvfabt.h # basename: tmpkchvfabt.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/tmpto8szixk # rspfile: True # /tmp/tmpto8szixk/tmpd6zh8e9b.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmpto8szixk/tmplsq_69dc.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/tmpto8szixk/tmplsq_69dc.template /tmp/tmpto8szixk/tmpd6zh8e9b.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpto8szixk/tmp42a3ee2v'] # 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/tmpto8szixk/tmpd6zh8e9b.h # basename: tmpd6zh8e9b.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/tmpy3_u4fw4 # rspfile: True # /tmp/tmpy3_u4fw4/tmpe58j3gi2.h: # typedef enum { # ENUM_VALUE_WITH_COMMA = ',', # } TestCommaEnum; # # /tmp/tmpy3_u4fw4/tmp4hkg7qlq.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/tmpy3_u4fw4/tmp4hkg7qlq.template /tmp/tmpy3_u4fw4/tmpe58j3gi2.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpy3_u4fw4/tmprd1e3dao'] # 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/tmpy3_u4fw4/tmpe58j3gi2.h # basename: tmpe58j3gi2.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/tmpxvpqxesx # rspfile: True # /tmp/tmpxvpqxesx/tmpvdg4zqgt.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmpxvpqxesx/tmp_v2tw1d0.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/tmpxvpqxesx/tmp_v2tw1d0.template /tmp/tmpxvpqxesx/tmpvdg4zqgt.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpxvpqxesx/tmptmd21xpd'] # 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/tmpxvpqxesx/tmpvdg4zqgt.h # basename: tmpvdg4zqgt.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/tmp5thry629 # rspfile: True # /tmp/tmp5thry629/tmpcxnw00k6.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/tmp5thry629/tmpa5xp32k9.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/tmp5thry629/tmpa5xp32k9.template /tmp/tmp5thry629/tmpcxnw00k6.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp5thry629/tmps51pca6j'] # 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/tmp5thry629/tmpcxnw00k6.h # basename: tmpcxnw00k6.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/tmpfxfk13r1 # rspfile: True # /tmp/tmpfxfk13r1/tmp9h1uwq9m.h: # /tmp/tmpfxfk13r1/tmp1c46t5b5.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/tmpfxfk13r1/tmp1c46t5b5.template /tmp/tmpfxfk13r1/tmp9h1uwq9m.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpfxfk13r1/tmpq5x8vwth'] # 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/tmpr4_3oq45 # rspfile: True # /tmp/tmpr4_3oq45/tmpd9s1fldi.template: # Response file contains: --template /tmp/tmpr4_3oq45/tmpd9s1fldi.template # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpr4_3oq45/tmp9tq9f32i'] # 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/tmp0xxc93rt # rspfile: True # /tmp/tmp0xxc93rt/tmpc20h1mn6.h: # typedef enum _SomeEnumIdentifier { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmp0xxc93rt/tmpqb4v_rj7.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/tmp0xxc93rt/tmpqb4v_rj7.template /tmp/tmp0xxc93rt/tmpc20h1mn6.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp0xxc93rt/tmp9ut9l578'] # 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/tmp0xxc93rt/tmpc20h1mn6.h # basename: tmpc20h1mn6.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/tmpdk__1wwp # rspfile: True # /tmp/tmpdk__1wwp/tmpuy3zombb.h: # typedef enum { # ENUM_VALUE_PUBLIC1, # /*< private >*/ # ENUM_VALUE_PRIVATE, # } SomeEnumA # # /tmp/tmpdk__1wwp/tmpy5p4qfb2.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/tmpdk__1wwp/tmpy5p4qfb2.template /tmp/tmpdk__1wwp/tmpuy3zombb.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpdk__1wwp/tmpbhd8g00h'] # 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/tmpdk__1wwp/tmpuy3zombb.h # basename: tmpuy3zombb.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/tmpdk__1wwp/tmp08v4had_.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE, # /*< public >*/ # ENUM_VALUE_PUBLIC2, # } SomeEnumB; # # /tmp/tmpdk__1wwp/tmpy6p9n19q.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/tmpdk__1wwp/tmpy6p9n19q.template /tmp/tmpdk__1wwp/tmp08v4had_.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpdk__1wwp/tmp84cf8owz'] # 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/tmpdk__1wwp/tmp08v4had_.h # basename: tmp08v4had_.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/tmp936asc0y # rspfile: True # /tmp/tmp936asc0y/tmp9qnxb9ki.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE = 5, # /*< public >*/ # ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2, # } TestSymbolicEnum; # # /tmp/tmp936asc0y/tmpwjqwhmmg.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/tmp936asc0y/tmpwjqwhmmg.template /tmp/tmp936asc0y/tmp9qnxb9ki.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp936asc0y/tmp1jmmj0kh'] # 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/tmp936asc0y/tmp9qnxb9ki.h # basename: tmp9qnxb9ki.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/tmpj1gkpdo4 # rspfile: True # /tmp/tmpj1gkpdo4/tmprxurdkko.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/tmpj1gkpdo4/tmprxurdkko.template # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpj1gkpdo4/tmptr735yqy'] # 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/tmpo0vbiscb # rspfile: True # Response file contains: --help # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpo0vbiscb/tmp23_8n2y9'] # 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/tmpp_x2pxl_ # rspfile: True # Response file contains: # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpp_x2pxl_/tmpfrw_inhp'] # 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/tmp42zq67l_ # rspfile: True # /tmp/tmp42zq67l_/tmp0mwwgv6p.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/tmp42zq67l_/tmp0mwwgv6p.template # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp42zq67l_/tmpzo9cms8q'] # 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/tmpp0is9gt4 # rspfile: True # /tmp/tmpp0is9gt4/tmplj2ebtux.h: # typedef enum { # GEGL_SAMPLER_NEAREST = 0, /*< desc="nearest" >*/ # } GeglSamplerType; # # /tmp/tmpp0is9gt4/tmpmwl61sbw.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/tmpp0is9gt4/tmpmwl61sbw.template /tmp/tmpp0is9gt4/tmplj2ebtux.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpp0is9gt4/tmpehhszqc1'] # 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/tmpp0is9gt4/tmplj2ebtux.h # basename: tmplj2ebtux.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/tmpg_63cz8t # rspfile: True # /tmp/tmpg_63cz8t/tmpy4_7ax8_.h: # /* Copyright © La Peña */ # typedef enum { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmpg_63cz8t/tmpg3trlqbh.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/tmpg_63cz8t/tmpg3trlqbh.template /tmp/tmpg_63cz8t/tmpy4_7ax8_.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpg_63cz8t/tmppcxvjro7'] # 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/tmpg_63cz8t/tmpy4_7ax8_.h # basename: tmpy4_7ax8_.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/tmpjc67918c # rspfile: True # /tmp/tmpjc67918c/tmp19smarb8.template: template # Response file contains: --template /tmp/tmpjc67918c/tmp19smarb8.template /tmp/tmpjc67918c/tmpb64zmqt41.h /tmp/tmpjc67918c/tmp6o55lr3g2.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpjc67918c/tmp116ftghw'] # 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/tmpjc67918c/tmpenz99l24.template: template # Response file contains: --template /tmp/tmpjc67918c/tmpenz99l24.template /tmp/tmpjc67918c/tmp6o55lr3g2.h /tmp/tmpjc67918c/tmpb64zmqt41.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpjc67918c/tmp03pkm0eg'] # 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/tmppstzh_se # rspfile: True # /tmp/tmppstzh_se/tmp3zm9qnvf.h: # typedef enum { /*< since=1.0 >*/ # QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0, # } QmiWmsMessageProtocol; # # /tmp/tmppstzh_se/tmpoto2v2r7.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/tmppstzh_se/tmpoto2v2r7.template /tmp/tmppstzh_se/tmp3zm9qnvf.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmppstzh_se/tmpnq8h2iaj'] # 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/tmppstzh_se/tmp3zm9qnvf.h # basename: tmp3zm9qnvf.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/tmpyywhd69_ # rspfile: True # /tmp/tmpyywhd69_/tmpwunm0nio.h: # typedef enum { # FOO_VALUE /*< nick="eek, a comma" >*/ # } Foo; # # /tmp/tmpyywhd69_/tmp6so4qwhw.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/tmpyywhd69_/tmp6so4qwhw.template /tmp/tmpyywhd69_/tmpwunm0nio.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpyywhd69_/tmp3v0mq2nc'] # 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/tmpyywhd69_/tmpwunm0nio.h # basename: tmpwunm0nio.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/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/tmpl5fla386 # Running: ['/usr/libexec/installed-tests/glib/assert-msg-test'] # Return code: -6 # Output: # Bail out! GLib:ERROR:../glib-2.84.1/glib/tests/assert-msg-test.c:31:main: assertion failed: (42 < 0) # Error: # ** # GLib:ERROR:../glib-2.84.1/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/tmp60jg7pwe 1..2 PASS: glib/assert-msg-test.py.test Running test: glib/contexts.test TAP version 14 # random seed: R02S780b1ffed2400468a3a723491fab7122 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/tls-bindings.test TAP version 14 # random seed: R02S4571d163c4f3e344c2baa18f18a6fed9 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/utf8-pointer.test TAP version 14 # random seed: R02S0546ee97f81c36b72bade9ee977eaa3b 1..3 # Start of utf8 tests ok 1 /utf8/offsets # slow test /utf8/offsets executed in 0.78 secs ok 2 /utf8/lengths ok 3 /utf8/find # End of utf8 tests PASS: glib/utf8-pointer.test Running test: glib/flags.test TAP version 14 # random seed: R02Sfb7b867c3f68a7f600b3856407d408b1 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/tree.test TAP version 14 # random seed: R02S017821d85275dda8b60585026145c22c 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/once.test TAP version 14 # random seed: R02Sa7a0969908505287239556a887fe346f 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/fileutils.test TAP version 14 # random seed: R02S7f0840eda48ad231a691ee4a54398bf5 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 # Checking g_mkdir_with_parents() in subdir ./hum/ # Checking g_mkdir_with_parents() in subdir ./hii///haa/hee/ 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/sandbox.test TAP version 14 # random seed: R02S1d0042cc8d2df732be6d154650d06d45 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/atomic-c-17.test TAP version 14 # random seed: R02Sd5595ce3ea4deef0f63a18f6b0f5829d 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/portal-support-flatpak-none.test TAP version 14 # random seed: R02S0eccbac237e40838e0fa676239c5dfdb 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/file.test TAP version 14 # random seed: R02S9f586b1d9666756fc2b3217589432616 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_FY7Y52 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 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_093752 Executing: glib/file.test 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_RK4752 # Test 1, using temporary directory /var/volatile/tmp/g_file_replace_VJ4752 # Test 2, using temporary directory /var/volatile/tmp/g_file_replace_JU4752 # Test 3, using temporary directory /var/volatile/tmp/g_file_replace_YH3752 # Test 4, using temporary directory /var/volatile/tmp/g_file_replace_WF3752 # Test 5, using temporary directory /var/volatile/tmp/g_file_replace_KF3752 # Test 6, using temporary directory /var/volatile/tmp/g_file_replace_JD3752 # Test 7, using temporary directory /var/volatile/tmp/g_file_replace_JO3752 # Test 8, using temporary directory /var/volatile/tmp/g_file_replace_DM3752 # Test 9, using temporary directory /var/volatile/tmp/g_file_replace_AL3752 # Test 10, using temporary directory /var/volatile/tmp/g_file_replace_AV3752 # Test 11, using temporary directory /var/volatile/tmp/g_file_replace_HU3752 # Test 12, using temporary directory /var/volatile/tmp/g_file_replace_PS3752 # Test 13, using temporary directory /var/volatile/tmp/g_file_replace_M43752 # Test 14, using temporary directory /var/volatile/tmp/g_file_replace_S03752 # Test 15, using temporary directory /var/volatile/tmp/g_file_replace_EW5752 # Test 16, using temporary directory /var/volatile/tmp/g_file_replace_EV5752 # Test 17, using temporary directory /var/volatile/tmp/g_file_replace_5Q5752 # Test 18, using temporary directory /var/volatile/tmp/g_file_replace_K45752 # Test 19, using temporary directory /var/volatile/tmp/g_file_replace_C25752 # Test 20, using temporary directory /var/volatile/tmp/g_file_replace_EY5752 # Test 21, using temporary directory /var/volatile/tmp/g_file_replace_QA6752 # Test 22, using temporary directory /var/volatile/tmp/g_file_replace_Y95752 # Test 23, using temporary directory /var/volatile/tmp/g_file_replace_275752 # Test 24, using temporary directory /var/volatile/tmp/g_file_replace_OI6752 # Test 25, using temporary directory /var/volatile/tmp/g_file_replace_NH6752 # Test 26, using temporary directory /var/volatile/tmp/g_file_replace_FF6752 # Test 27, using temporary directory /var/volatile/tmp/g_file_replace_YD6752 # Test 28, using temporary directory /var/volatile/tmp/g_file_replace_D34752 # Test 29, using temporary directory /var/volatile/tmp/g_file_replace_414752 # Test 30, using temporary directory /var/volatile/tmp/g_file_replace_EC5752 # Test 31, using temporary directory /var/volatile/tmp/g_file_replace_EA5752 # Test 32, using temporary directory /var/volatile/tmp/g_file_replace_L84752 # Test 33, using temporary directory /var/volatile/tmp/g_file_replace_H74752 # Test 34, using temporary directory /var/volatile/tmp/g_file_replace_DK5752 # Test 35, using temporary directory /var/volatile/tmp/g_file_replace_JI5752 # Test 36, using temporary directory /var/volatile/tmp/g_file_replace_0D5752 # Test 37, using temporary directory /var/volatile/tmp/g_file_replace_NR5752 # Test 38, using temporary directory /var/volatile/tmp/g_file_replace_7M5752 # Test 39, using temporary directory /var/volatile/tmp/g_file_replace_FM5752 # Test 40, using temporary directory /var/volatile/tmp/g_file_replace_WFQ852 # Test 41, using temporary directory /var/volatile/tmp/g_file_replace_JFQ852 # Test 42, using temporary directory /var/volatile/tmp/g_file_replace_FDQ852 # Test 43, using temporary directory /var/volatile/tmp/g_file_replace_5MQ852 # Test 44, using temporary directory /var/volatile/tmp/g_file_replace_VMQ852 # Test 45, using temporary directory /var/volatile/tmp/g_file_replace_MKQ852 # Test 46, using temporary directory /var/volatile/tmp/g_file_replace_9WQ852 # Test 47, using temporary directory /var/volatile/tmp/g_file_replace_DVQ852 # Test 48, using temporary directory /var/volatile/tmp/g_file_replace_YTQ852 # 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_WZQ852 # Test 1, using temporary directory /var/volatile/tmp/g_file_replace_EYQ852 # Test 2, using temporary directory /var/volatile/tmp/g_file_replace_1QP852 # Test 3, using temporary directory /var/volatile/tmp/g_file_replace_CMP852 # Test 4, using temporary directory /var/volatile/tmp/g_file_replace_LKP852 # Test 5, using temporary directory /var/volatile/tmp/g_file_replace_EXP852 # Test 6, using temporary directory /var/volatile/tmp/g_file_replace_AWP852 # Test 7, using temporary directory /var/volatile/tmp/g_file_replace_0RP852 # Test 8, using temporary directory /var/volatile/tmp/g_file_replace_V5P852 # Test 9, using temporary directory /var/volatile/tmp/g_file_replace_02P852 # Test 10, using temporary directory /var/volatile/tmp/g_file_replace_Z1P852 # Test 11, using temporary directory /var/volatile/tmp/g_file_replace_GCQ852 # Test 12, using temporary directory /var/volatile/tmp/g_file_replace_79P852 # Test 13, using temporary directory /var/volatile/tmp/g_file_replace_O9P852 # Test 14, using temporary directory /var/volatile/tmp/g_file_replace_I4R852 # Test 15, using temporary directory /var/volatile/tmp/g_file_replace_X3R852 # Test 16, using temporary directory /var/volatile/tmp/g_file_replace_EZR852 # Test 17, using temporary directory /var/volatile/tmp/g_file_replace_LBS852 # Test 18, using temporary directory /var/volatile/tmp/g_file_replace_KAS852 # Test 19, using temporary directory /var/volatile/tmp/g_file_replace_R6R852 # Test 20, using temporary directory /var/volatile/tmp/g_file_replace_QIS852 # Test 21, using temporary directory /var/volatile/tmp/g_file_replace_OIS852 # Test 22, using temporary directory /var/volatile/tmp/g_file_replace_8DS852 # Test 23, using temporary directory /var/volatile/tmp/g_file_replace_KQS852 # Test 24, using temporary directory /var/volatile/tmp/g_file_replace_ZPS852 # Test 25, using temporary directory /var/volatile/tmp/g_file_replace_ELS852 # Test 26, using temporary directory /var/volatile/tmp/g_file_replace_EDR852 # Test 27, using temporary directory /var/volatile/tmp/g_file_replace_6AR852 # Test 28, using temporary directory /var/volatile/tmp/g_file_replace_69Q852 # Test 29, using temporary directory /var/volatile/tmp/g_file_replace_NKR852 # Test 30, using temporary directory /var/volatile/tmp/g_file_replace_KIR852 # Test 31, using temporary directory /var/volatile/tmp/g_file_replace_KGR852 # Test 32, using temporary directory /var/volatile/tmp/g_file_replace_IGR852 # Test 33, using temporary directory /var/volatile/tmp/g_file_replace_4PR852 # Test 34, using temporary directory /var/volatile/tmp/g_file_replace_IOR852 # Test 35, using temporary directory /var/volatile/tmp/g_file_replace_8LR852 # Test 36, using temporary directory /var/volatile/tmp/g_file_replace_E0R852 # Test 37, using temporary directory /var/volatile/tmp/g_file_replace_NWR852 # Test 38, using temporary directory /var/volatile/tmp/g_file_replace_JUR852 # Test 39, using temporary directory /var/volatile/tmp/g_file_replace_CEN852 # Test 40, using temporary directory /var/volatile/tmp/g_file_replace_ODN852 # Test 41, using temporary directory /var/volatile/tmp/g_file_replace_8AN852 # Test 42, using temporary directory /var/volatile/tmp/g_file_replace_HLN852 # Test 43, using temporary directory /var/volatile/tmp/g_file_replace_NJN852 # Test 44, using temporary directory /var/volatile/tmp/g_file_replace_KIN852 # Test 45, using temporary directory /var/volatile/tmp/g_file_replace_RVN852 # Test 46, using temporary directory /var/volatile/tmp/g_file_replace_CTN852 # Test 47, using temporary directory /var/volatile/tmp/g_file_replace_ASN852 # Test 48, using temporary directory /var/volatile/tmp/g_file_replace_0PN852 # 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/g-icon.test TAP version 14 # random seed: R02S6adbefd385f46c172cb34e02c3f0da47 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/overflow-fallback.test TAP version 14 # random seed: R02Se624948d87fd940032f26fcbd56059ce 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 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/gdbus-message.test TAP version 14 # random seed: R02Sc5164f890c169def89d972dd01434c4b 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/mem-overflow.test TAP version 14 # random seed: R02S897ec02d47f14a07129ea5c4b5135737 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/macros.test TAP version 14 # random seed: R02S0fd0f144dd2be2f42ac9a243809bc35c 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/thread.test TAP version 14 # random seed: R02S7416d90ef9dcd809270eaccf6350418c 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/thread-pool.test TAP version 14 # random seed: R02S8b2c6dd8f300e0aa0ce5af02c5cb5e41 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/enums.test TAP version 14 # random seed: R02S8c1440d304d9c8212fc8f73869e9fbc2 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/642026-ec.test TAP version 14 # random seed: R02Sd4200541723a128a2a064a2c2432cf6b 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/cxx.test TAP version 14 # random seed: R02S166f3cf1b228bd355028faab4f02bb0f 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/error.test TAP version 14 # random seed: R02S2f4301c3f0af2a925d3fda892c5a4955 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/type-flags.test TAP version 14 # random seed: R02Sd54dd767c6d61eecad5373acfcf68262 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/spawn-multithreaded.test TAP version 14 # random seed: R02Saf82b2c53aa0e3be70b1052a69ec1243 1..4 # Start of gthread tests # Child 3878 (ttl 1) exited, status 0 # Child 3879 (ttl 2) exited, status 0 ok 1 /gthread/spawn-childs # slow test /gthread/spawn-childs executed in 2.00 secs # Created pid: 3883 (ttl 2) # Created pid: 3884 (ttl 1) # Child 3884 (ttl 1) exited, status 0 # Child 3883 (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/closure.test TAP version 14 # random seed: R02Sd56c50961694bc218a032c09339d164f 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/pathbuf.test TAP version 14 # random seed: R02Sc335206b00c5baeca5ddf3ecf093e5c5 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/list.test TAP version 14 # random seed: R02S1cda9d08ce8528aabd0491409464f11b 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/utils-c-89.test TAP version 14 # random seed: R02S66658d5af43f9562c66ff354d40fa98e 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/timeout.test TAP version 14 # random seed: R02S6b94da2e4bf6e70945b18feca7b74458 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 Executing: glib/timeout.test 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/bytes.test TAP version 14 # random seed: R02Sfc559136f0915a29ed4e8d30bf7d8958 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/option-context.test TAP version 14 # random seed: R02S46569b442078a003e250055f396caef3 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/guuid.test TAP version 14 # random seed: R02Sd41966b9f8a4513abd6fd449dd3edab5 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/autoptr.test TAP version 14 # random seed: R02Sd437fcf2c8e5d36790a0c2f0c8f41145 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/value.test TAP version 14 # random seed: R02S658e9e169409ec5652e407615f93dc46 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/object.test TAP version 14 # random seed: R02Scaee093ceb05094518723e940fe83714 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/utils-c-99.test TAP version 14 # random seed: R02S779856e64c443a9b75816d8cd53c5cc5 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/regex.test TAP version 14 # random seed: R02Sb4dc77dd91868b55dcddc4f82c16ea7f 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/qdata.test TAP version 14 # random seed: R02S620ba48b2b34c112df0a12e57a2ca761 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/rand.test TAP version 14 # random seed: R02Sb28994b713e1861cf479a971f8b10dcb 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/cxx-98.test TAP version 14 # random seed: R02Sa5beeac1edf21312d598bb877fd998d3 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/rcbox.test TAP version 14 # random seed: R02Sab59be259bc23c2c5318594def2c63ef 1..8 # Start of rcbox tests ok 1 /rcbox/new # global_point = 0x55a5e8513dc0 ok 2 /rcbox/release-full # global_point_a = 0x55a5e8513dc0 # global_point_b = 0x55a5e8513e90 ok 3 /rcbox/dup ok 4 /rcbox/alignment # End of rcbox tests # Start of atomic-rcbox tests ok 5 /atomic-rcbox/new # global_point = 0x55a5e8513e90 ok 6 /atomic-rcbox/release-full # global_point_a = 0x55a5e8513e90 # global_point_b = 0x55a5e8513dc0 ok 7 /atomic-rcbox/dup ok 8 /atomic-rcbox/alignment # End of atomic-rcbox tests PASS: glib/rcbox.test Running test: glib/bitlock.test TAP version 14 # random seed: R02S9e06de9d1bc9f21841368ddc7ed73748 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/slice.test TAP version 14 # random seed: R02Safae17f3aa602b6faa9fdfcd2cae3a2c 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/timer.test TAP version 14 # random seed: R02Sd93553c7d49b9abefe59a6bfd0afece4 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-test.test TAP version 14 # random seed: R02S985c6a80b04a964da19f515718f99b0d 1..2 # Start of spawn tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/spawn/basics/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/spawn/basics/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/spawn/basics/.dirs/system-config1:/var/volatile/tmp/spawn/basics/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/spawn/basics/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/spawn/basics/.dirs/system-data1:/var/volatile/tmp/spawn/basics/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/spawn/basics/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/spawn/basics/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/spawn/basics/.dirs/runtime ok 1 /spawn/basics # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/system-config1:/var/volatile/tmp/spawn/stdio-overwrite/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/system-data1:/var/volatile/tmp/spawn/stdio-overwrite/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/spawn/stdio-overwrite/.dirs/runtime # 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/sleepy-stream.test TAP version 14 # random seed: R02S7eff367ba14ba8efeba3ed10dcafc2cb 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/union-info.test TAP version 14 # random seed: R02Sdff04e907b51bb7dcf5d7a85560842df 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/autoptr-gio.test TAP version 14 # random seed: R02S822f23710c6cca471998d8b457c73ddd 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/stream-rw_all.test TAP version 14 # random seed: R02Se656c0b6a79dc01970216178d8e56fb2 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/data-input-stream.test TAP version 14 # random seed: R02S7324e89f56d7121e7aaca7be92b09025 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/option-argv0.test TAP version 14 # random seed: R02S06630ad78823e1f087222008ef06ff02 1..1 # Start of option tests ok 1 /option/argv0 # End of option tests PASS: glib/option-argv0.test Running test: glib/markup-parse.test TAP version 14 # random seed: R02S817930a4266e483bcd5de4b3f638399c 1..71 # Start of markup tests # Start of parse tests ok 1 /markup/parse/fail-28.gmarkup ok 2 /markup/parse/fail-27.gmarkup ok 3 /markup/parse/fail-26.gmarkup ok 4 /markup/parse/fail-52.gmarkup ok 5 /markup/parse/fail-11.gmarkup ok 6 /markup/parse/fail-15.gmarkup ok 7 /markup/parse/fail-3.gmarkup ok 8 /markup/parse/valid-5.gmarkup ok 9 /markup/parse/fail-8.gmarkup ok 10 /markup/parse/fail-51.gmarkup ok 11 /markup/parse/fail-5.gmarkup ok 12 /markup/parse/fail-10.gmarkup ok 13 /markup/parse/fail-24.gmarkup ok 14 /markup/parse/valid-3.gmarkup ok 15 /markup/parse/fail-20.gmarkup ok 16 /markup/parse/fail-31.gmarkup ok 17 /markup/parse/fail-23.gmarkup ok 18 /markup/parse/fail-6.gmarkup ok 19 /markup/parse/fail-43.gmarkup ok 20 /markup/parse/valid-17.gmarkup ok 21 /markup/parse/fail-53.gmarkup ok 22 /markup/parse/fail-37.gmarkup ok 23 /markup/parse/fail-13.gmarkup ok 24 /markup/parse/fail-36.gmarkup ok 25 /markup/parse/valid-7.gmarkup ok 26 /markup/parse/fail-4.gmarkup ok 27 /markup/parse/valid-14.gmarkup ok 28 /markup/parse/fail-18.gmarkup ok 29 /markup/parse/valid-9.gmarkup ok 30 /markup/parse/valid-8.gmarkup ok 31 /markup/parse/fail-2.gmarkup ok 32 /markup/parse/fail-45.gmarkup ok 33 /markup/parse/valid-16.gmarkup ok 34 /markup/parse/fail-21.gmarkup ok 35 /markup/parse/fail-46.gmarkup ok 36 /markup/parse/valid-2.gmarkup ok 37 /markup/parse/fail-19.gmarkup ok 38 /markup/parse/fail-14.gmarkup ok 39 /markup/parse/fail-12.gmarkup ok 40 /markup/parse/fail-33.gmarkup ok 41 /markup/parse/fail-22.gmarkup ok 42 /markup/parse/valid-12.gmarkup ok 43 /markup/parse/valid-11.gmarkup ok 44 /markup/parse/fail-7.gmarkup ok 45 /markup/parse/fail-41.gmarkup ok 46 /markup/parse/valid-13.gmarkup ok 47 /markup/parse/fail-1.gmarkup ok 48 /markup/parse/fail-40.gmarkup ok 49 /markup/parse/fail-39.gmarkup ok 50 /markup/parse/fail-48.gmarkup ok 51 /markup/parse/valid-15.gmarkup ok 52 /markup/parse/fail-54.gmarkup ok 53 /markup/parse/fail-17.gmarkup ok 54 /markup/parse/valid-1.gmarkup ok 55 /markup/parse/fail-47.gmarkup ok 56 /markup/parse/fail-32.gmarkup ok 57 /markup/parse/fail-38.gmarkup ok 58 /markup/parse/fail-16.gmarkup ok 59 /markup/parse/fail-49.gmarkup ok 60 /markup/parse/fail-35.gmarkup ok 61 /markup/parse/valid-6.gmarkup ok 62 /markup/parse/fail-29.gmarkup ok 63 /markup/parse/fail-25.gmarkup ok 64 /markup/parse/fail-34.gmarkup ok 65 /markup/parse/fail-9.gmarkup ok 66 /markup/parse/valid-10.gmarkup ok 67 /markup/parse/fail-42.gmarkup ok 68 /markup/parse/valid-4.gmarkup ok 69 /markup/parse/fail-50.gmarkup ok 70 /markup/parse/fail-44.gmarkup ok 71 /markup/parse/fail-30.gmarkup # End of parse tests # End of markup tests PASS: glib/markup-parse.test Running test: glib/closure-refcount.test TAP version 14 # random seed: R02S3613f4e432fa25fc0e7d1aa3c422966c 1..1 # Start of closure tests # Init 0x55a2b602b380 # Yielding from main thread # Yielding from thread1 # 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 thread1 # 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 thread1 # 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 thread1 # 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 thread1 # 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 thread1 # 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 thread1 # 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 thread1 # Yielding from main thread # Yielding from thread2 # Yielding from main thread # Yielding from thread1 # 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 thread1 # 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 thread1 # Yielding from main thread # Yielding from main thread # Yielding from thread2 # Yielding from thread1 # 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 thread1 # 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 thread1 # Yielding from main thread # Yielding from main thread # Yielding from main thread # Yielding from thread2 # Yielding from thread1 # 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 thread1 # 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 thread1 # 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 thread1 # 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 thread1 # Yielding from main thread # Yielding from main thread Executing: glib/closure-refcount.test # Yielding from thread1 # Yielding from main thread # Yielding from main thread # Yielding from main thread # Yielding from thread1 # Stopping # Stopped ok 1 /closure/refcount # slow test /closure/refcount executed in 3.03 secs # End of closure tests PASS: glib/closure-refcount.test Running test: glib/memchunk.test TAP version 14 # random seed: R02Sf95cef236a56bf212e7e6cb137d6ea56 1..1 # Start of memchunk tests ok 1 /memchunk/basic # End of memchunk tests PASS: glib/memchunk.test Running test: glib/properties-introspection.test TAP version 14 # random seed: R02S1f7c0c2deabc45a076a07c569078c776 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/struct-info.test TAP version 14 # random seed: R02S00501dd8ba8f304c18ca452b62e013d7 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-peer.test TAP version 14 # random seed: R02S6bb3d8c778205a2b75dec9211261ae8e 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.50 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: 982912457993cc12e11ee3fc681cb455 ok 6 /gdbus/codegen-peer-to-peer # slow test /gdbus/codegen-peer-to-peer executed in 1.10 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/callable-info.test TAP version 14 # random seed: R02S394fa569265dc358ae2f8379f76d6eb6 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/objects-refcount2.test TAP version 14 # random seed: R02S63f4688ff33170871ae6c366ecda209a 1..1 # Start of gobject tests # Start of refcount tests # init 0x560116eaab70 # # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # dispose 0x560116eaab70! # ok 1 /gobject/refcount/object-advanced # slow test /gobject/refcount/object-advanced executed in 2.34 secs # End of refcount tests # End of gobject tests PASS: glib/objects-refcount2.test Running test: glib/proxy-test.test TAP version 14 # random seed: R02S4393ec2565cbb1347718361c538d5bc1 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 0x556eef1ae250 and GSocketClientAsyncConnectData 0x556eef1ad780 # 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 0x556eef1aebe0 for GSocketClientAsyncConnectData 0x556eef1ad780 # 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 0x556eef1ae740 and GSocketClientAsyncConnectData 0x556eef1ad780 # 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 0x556eef1aebe0 for GSocketClientAsyncConnectData 0x556eef1ad780 # 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 0x556eef1ae9e0 and GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1b05b0 for GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1b00c0 for GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1ae590 and GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1ae740 and GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1ae590 and GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1aec40 for GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1ae740 and GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1aebe0 for GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1ae250 and GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1b0be0 and GSocketClientAsyncConnectData 0x556eef1aeb30 # 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 0x556eef1afd30 for GSocketClientAsyncConnectData 0x556eef1aeb30 # 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 0x556eef1ae590 and GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1aec40 for GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1ae250 and GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1b05b0 for GSocketClientAsyncConnectData 0x556eef1ae970 # 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 0x556eef1ae590 and GSocketClientAsyncConnectData 0x556eef1b07c0 # 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 0x556eef1aebe0 for GSocketClientAsyncConnectData 0x556eef1b07c0 # 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 0x556eef1ae250 and GSocketClientAsyncConnectData 0x556eef1b0830 # 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 0x556eef1afd30 for GSocketClientAsyncConnectData 0x556eef1b0830 # 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/deftype.test PASS: glib/deftype.test Running test: glib/repository-search-paths.test TAP version 14 # random seed: R02S0aadbeb1af56031d17773fb2111eddb0 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/search-utils.test TAP version 14 # random seed: R02S4c074efdcc11caec353a35e88cd77cb1 # 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: 'Jör' - 'Jorgen' should NOT match: SKIPPED # Locale 'sv_SE.UTF-8' is unavailable # GLib-DEBUG: 'jor' - 'Jö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/filter-streams.test TAP version 14 # random seed: R02S2f71e9fdd9e8c14e37c1808748727d0c 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/array-test.test TAP version 14 # random seed: R02S24439510702e900e84789310c2507a0f 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/gio-tool.py.test TAP version 13 ok 1 __main__.TestGioTool.test_help # gio: /usr/bin/gio # tmpdir: /tmp/tmpfctw5e_c # 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/tmp9q3jo914 # Running: ['/usr/bin/gio', 'info', '--attributes=standard::content-type', '/tmp/tmp9q3jo914/tmpa_b8xkt7'] # Return code: 0 # Output: # uri: file:///tmp/tmp9q3jo914/tmpa_b8xkt7 # local path: /tmp/tmp9q3jo914/tmpa_b8xkt7 # 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/tmpf41a1xr0 # 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-refcount1.test TAP version 14 # random seed: R02S859aa3180d82b581f7ca90bcc72a1f65 1..1 # Start of gobject tests # Start of refcount tests # init 0x55e4c6b873f0 # # init 0x55e4c6b80600 # Executing: glib/signals-refcount1.test # dispose 0x55e4c6b873f0! # # dispose 0x55e4c6b80600! # 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/gdbus-server-auth.test TAP version 14 # random seed: R02Sdf37dde8cfb0e912da79ab54717aa3b1 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-2Q5752 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-2Q5752/dbus-Y0mAF32U # 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=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 4183 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-5D5752 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:true tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-5D5752/dbus-LctpbVto # 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=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 4183 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=34321 # 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-ATQ852 / libdbus client, with flags: external:false anonymous:true sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-ATQ852/dbus-G8Meawho # 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=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 4183 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-PRP852 / libdbus client, with flags: external:true anonymous:false sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-PRP852/dbus-eSAfIcNM # 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=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 4183 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-IVP852 / libdbus client, with flags: external:false anonymous:false sha1:true abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-IVP852/dbus-VftJmgG1 # 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=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 4183 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=41939 # 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-36R852 / libdbus client, with flags: external:true anonymous:false sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-36R852/dbus-VLDVwEVR # 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=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=4183,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 4183 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=42419 # 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/relation.test TAP version 14 # random seed: R02S38e369d90da12e07f44ccd9540022c0d 1..1 # Start of glib tests ok 1 /glib/relation # End of glib tests PASS: glib/relation.test Running test: glib/signal-handler.test TAP version 14 # random seed: R02S724708533a1e9ec1689ed590ab5a2f27 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/override.test TAP version 14 # random seed: R02S54f64c142d805c3a0c336a6e85e43503 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/gdbus-non-socket.test TAP version 14 # random seed: R02Sa6b759c14c03250df1f2231db2d265d7 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/environment.test TAP version 14 # random seed: R02S881b4a728ff707ab3879d2d4d8b5c61b 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/memory-settings-backend.test TAP version 14 # random seed: R02S69c9d0b6dd286f40154d877488be307e 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/cmph-bdz.test TAP version 14 # random seed: R02S89a974c331ae0f24cddcca102cad7302 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/socket.test TAP version 14 # random seed: R02Sffb9084a7822aeef00137fda0e891548 1..28 # Start of socket tests Executing: glib/socket.test 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 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=4214,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/642026.test TAP version 14 # random seed: R02Sbc435be074fe2b209b74731021d461ca 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/uri.test TAP version 14 # random seed: R02Sdc5ac7ae4f53c90a427f62cc90ad686a 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¶m=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/performance-threaded.test Running test "liststore-is-a" Executing: glib/performance-threaded.test 33516 runs, min/avg/max = 0.028/0.030/0.124 ms Running test "liststore-interface-peek" 55907 runs, min/avg/max = 0.016/0.018/0.096 ms Running test "liststore-interface-peek-same" 58514 runs, min/avg/max = 0.016/0.017/0.101 ms PASS: glib/performance-threaded.test Running test: glib/io-channel.test TAP version 14 # random seed: R02Se3c6d63cbc715eb0bf654dfbaf3d285f 1..2 # Start of io-channel tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/io-channel/read-write/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/io-channel/read-write/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/io-channel/read-write/.dirs/system-config1:/var/volatile/tmp/io-channel/read-write/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/io-channel/read-write/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/io-channel/read-write/.dirs/system-data1:/var/volatile/tmp/io-channel/read-write/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/io-channel/read-write/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/io-channel/read-write/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/io-channel/read-write/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/system-config1:/var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/system-data1:/var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/io-channel/read-line/embedded-nuls/.dirs/runtime # /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/macros-c-11.test TAP version 14 # random seed: R02S570f73cbc15f24447fcfa8c8ae9411c5 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/overflow.test TAP version 14 # random seed: R02S1c011a4639235c2e7eb8c8c85eedb646 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/mimeapps.test TAP version 14 # random seed: R02S09909c451b002bd46d05720141e79191 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/spawn-path-search.test TAP version 14 # random seed: R02S30e922343c30be273f9181613bc50d5b 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/ifaceproperties.test TAP version 14 # random seed: R02Sd20064a1fc9b8e42307dc7aebac61a5b 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/dataset.test TAP version 14 # random seed: R02S276882cc3943e8c27eb6a278ef948964 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/cxx-14.test TAP version 14 # random seed: R02S495a60ed771c5d5afed129e5eb3d4037 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/shell.test TAP version 14 # random seed: R02S51339637b6006f968ab104757f9dab88 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/sort.test TAP version 14 # random seed: R02S85102cdf8049e326a8e555c27f479e43 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/signals-refcount4.test TAP version 14 # random seed: R02S3fb08f8b29a8239f836819d703689e50 1..1 # Start of gobject tests # Start of refcount tests # init 0x561c348363f0 # # init 0x561c3482f600 # Executing: glib/signals-refcount4.test # dispose 0x561c348363f0! # # dispose 0x561c3482f600! # 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/unicode-encoding.test TAP version 14 # random seed: R02S7b23b059f900d5c8d5816ef96ad6e6aa 1..1 # Start of unicode tests ok 1 /unicode/encoding # End of unicode tests PASS: glib/unicode-encoding.test Running test: glib/task.test TAP version 14 # random seed: R02S17c2524ed0b2d29855da5e5bfafa4536 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 0x55cf0443f010 (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 0x55cf0443ee30 (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 0x55cf0443f160 (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 # GLib-GIO-DEBUG: GTask 0x55cf0443f440 (source object: (nil), source tag: (nil)) finalized without ever returning (using g_task_return_*()). This potentially indicates a bug in the program. 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/cxx-11.test TAP version 14 # random seed: R02Sfe053cfac10577ef15a8f49821e50c6b 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/custom-dispatch.test TAP version 14 # random seed: R02Saeaaca4c6b53c28b45dba9b8a852d33b 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/test-printf.test TAP version 14 # random seed: R02S270027e3afe89068cfca8d99f4176341 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/buffered-output-stream.test TAP version 14 # random seed: R02S3543c13c5f0dd39283d554dada548c93 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/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/thumbnail-verification.test TAP version 14 # random seed: R02S9c9e2165fa000c23dba2b75254d74fc1 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/buffered-input-stream.test TAP version 14 # random seed: R02S4ca09e2663bb4bbb54c847d5d52f8e3e 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/unix-streams.test TAP version 14 # random seed: R02Se5d42b0073e283a4f7d6e670d2db0eab 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 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/macros-c-89.test Executing: glib/macros-c-89.test TAP version 14 # random seed: R02Scab04051509a18d6f3f9ac905dc86fb1 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/g-file.test TAP version 14 # random seed: R02S8daf0da95b5594f9bc85bb6f9c3ec0e0 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-CL9Q52 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/reference.test TAP version 14 # random seed: R02S6e4cfb7ee644135b397a55c73d4badb3 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/dynamictype.test TAP version 14 # random seed: R02Sc870d413ca2e971f0115235606f52732 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/logging.test TAP version 14 # random seed: R02Sd9f0f9f1fdb7fa1f2ccd44ea04654a2a 1..17 # Start of logging tests ok 1 /logging/default-handler # slow test /logging/default-handler executed in 0.93 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/gvariant.test TAP version 14 # random seed: R02S814c722f1ff1696c4c0a1042ab8ec64a 1..69 # 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 # slow test /gvariant/serialiser/byteswap executed in 1.97 secs # 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 byteswap tests ok 44 /gvariant/serialiser/byteswap/zero-sized # End of byteswap tests # Start of fuzz tests ok 45 /gvariant/serialiser/fuzz/1% # slow test /gvariant/serialiser/fuzz/1% executed in 1.38 secs Executing: glib/gvariant.test ok 46 /gvariant/serialiser/fuzz/5% ok 47 /gvariant/serialiser/fuzz/9% ok 48 /gvariant/serialiser/fuzz/13% ok 49 /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 50 /gvariant/byteswap/non-normal-non-aligned # End of byteswap tests # Start of parser tests ok 51 /gvariant/parser/integer-bounds ok 52 /gvariant/parser/recursion # Start of recursion tests ok 53 /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 54 /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 55 /gvariant/normal-checking/tuples ok 56 /gvariant/normal-checking/array-offsets ok 57 /gvariant/normal-checking/array-offsets2 ok 58 /gvariant/normal-checking/tuple-offsets ok 59 /gvariant/normal-checking/tuple-offsets2 ok 60 /gvariant/normal-checking/tuple-offsets3 ok 61 /gvariant/normal-checking/tuple-offsets4 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2840 ok 62 /gvariant/normal-checking/tuple-offsets5 ok 63 /gvariant/normal-checking/empty-object-path # Start of array-offsets tests ok 64 /gvariant/normal-checking/array-offsets/overlapped ok 65 /gvariant/normal-checking/array-offsets/minimal-sized # End of array-offsets tests # Start of tuple-offsets tests ok 66 /gvariant/normal-checking/tuple-offsets/minimal-sized # End of tuple-offsets tests # End of normal-checking tests # Start of recursion-limits tests ok 67 /gvariant/recursion-limits/variant-in-variant ok 68 /gvariant/recursion-limits/array-in-variant # End of recursion-limits tests # End of gvariant tests # Start of gvarianttype tests ok 69 /gvarianttype/hash # End of gvarianttype tests PASS: glib/gvariant.test Running test: glib/basic-signals.test TAP version 14 # random seed: R02S1e1bdad428832f77dbb10573d0a4d0a8 1..1 # Start of gobject tests ok 1 /gobject/basic-signals # End of gobject tests PASS: glib/basic-signals.test Running test: glib/g-file-info.test TAP version 14 # random seed: R02S87e8001507e6fdc123b0f4c5840e3148 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/giomodule.test TAP version 14 # random seed: R02S58f94c17d2d2118d81621bec7ffb508f 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/gdbus-address-get-session.test TAP version 14 # random seed: R02S4bc3aae0dfbc7f6b6ab62ce7f7e48ae4 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/properties-refcount3.test TAP version 14 # random seed: R02S914db46d727d3d77e582c61f250c7d44 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 # # 30639556 376580 # 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/portal-support-flatpak-gsettings-only.test TAP version 14 # random seed: R02S5d3cb9c7cc0d5a466fc1285ee77ab703 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/socket-listener.test TAP version 14 # random seed: R02S051669738bba9ccc8de306720993fe45 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/gdbus-connection-flush.test TAP version 14 # random seed: R02S76083e3ada17d827e60faaaf6d6aa435 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/performance.test Executing: glib/performance.test simple-construction: Millions of constructed objects per second: 44.356 Executing: glib/performance.test simple-construction1: Millions of constructed objects per second: 158.378 complex-construction: Millions of constructed objects per second: 13.827 Executing: glib/performance.test complex-construction1: Millions of constructed objects per second: 24.715 Executing: glib/performance.test complex-construction2: Millions of constructed objects per second: 29.635 Executing: glib/performance.test finalization: Millions of finalized objects per second: 8.577 type-check: Million type checks per second: 197.13 emit-unhandled: Emissions per second: 11066566 emit-unhandled-empty: Emissions per second: 77079230 emit-unhandled-generic: Emissions per second: 14985077 Executing: glib/performance.test emit-unhandled-generic-empty: Emissions per second: 75536713 emit-unhandled-args: Emissions per second: 9149241 emit-handled: Emissions per second: 6694590 emit-handled-empty: Emissions per second: 6905485 Executing: glib/performance.test emit-handled-generic: Emissions per second: 6836630 emit-handled-generic-empty: Emissions per second: 13040898 emit-handled-args: Emissions per second: 5827046 notify-unhandled: Notify (unhandled) per second: 53940750 Executing: glib/performance.test notify-by-pspec-unhandled: Notify (unhandled) per second: 179789645 notify-handled: Notify per second: 4402256 notify-by-pspec-handled: Notify per second: 4610365 property-set: Property set per second: 34305496 property-set-signaled: Property set per second: 7490003 Executing: glib/performance.test property-get: Property get per second: 34645446 refcount: Million refs+unref per second: 83.93 refcount-1: Million refs+unref per second: 224.81 refcount-toggle: Million refs+unref per second: 121.85 PASS: glib/performance.test Running test: glib/mainloop.test TAP version 14 # random seed: R02Sde4f1949728269b523dd4bef8610af1d 1..45 # Start of maincontext tests ok 1 /maincontext/basic # Add same-priority sources: 6 # Find each source: 0 # Remove in random order: 8 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: 102 # Remove sources from threads: 25 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.16 secs ok 26 /mainloop/recursive_child_sources # slow test /mainloop/recursive_child_sources executed in 2.13 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 Executing: glib/mainloop.test 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/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/tmp78tuh9os # Running: ['/usr/libexec/installed-tests/glib/messages-low-memory'] # Return code: -6 # Output: # # Error: # GLib-Message: 13:44:56.140: Simulates a situation in which we were crashing because of low-memory, leading malloc to fail instead of aborting # GLib-Message: 13:44:56.141: bug: https://gitlab.gnome.org/GNOME/glib/-/issues/2753 # ../glib-2.84.1/glib/gprintf.c:350: failed to allocate memory 1..1 PASS: glib/messages-low-memory.py.test Running test: glib/portal-support-snap.test TAP version 14 # random seed: R02Sd11bef8261ecab02eabaaaf34166cffc 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/signals-refcount2.test TAP version 14 # random seed: R02S3a993f42f055d2452d3219b5219523fb 1..1 # Start of gobject tests # Start of refcount tests # init 0x55ae5dfdf3f0 # # init 0x55ae5dfd8600 # Executing: glib/signals-refcount2.test # dispose 0x55ae5dfdf3f0! # # dispose 0x55ae5dfd8600! # 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/cxx-2b.test TAP version 14 # random seed: R02S218055cd4195b7132d93c17b713f0509 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/simple-async-result.test TAP version 14 # random seed: R02Sf2d8c4ba194b356539febf2ad7a12156 1..2 # Start of gio tests # Start of simple-async-result tests ok 1 /gio/simple-async-result/test # GLib-GIO-DEBUG: GTask 0x5654a6af73e0 (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/memory-monitor.test TAP version 14 # random seed: R02S68529a8a23b2c388dedb067012d49d20 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/gsocketclient-slow.test TAP version 14 # random seed: R02S5bef05fc44db089bda30408687a473b2 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 0x55ac1aa84340 and GSocketClientAsyncConnectData 0x55ac1aa5f6e0 # 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 0x55ac1aa87ef0 for GSocketClientAsyncConnectData 0x55ac1aa5f6e0 # 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 0x55ac1aa87ef0 for GSocketClientAsyncConnectData 0x55ac1aa5f6e0 # 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 0x55ac1aa86c30 and GSocketClientAsyncConnectData 0x55ac1aa89630 # 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 0x55ac1aa895d0 for GSocketClientAsyncConnectData 0x55ac1aa89630 # 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 0x55ac1aa87580 and GSocketClientAsyncConnectData 0x55ac1aa8b570 # 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 0x55ac1aa86a80 and GSocketClientAsyncConnectData 0x55ac1aa8b210 # 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 0x55ac1aa8bcc0 for GSocketClientAsyncConnectData 0x55ac1aa8b210 # 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/portal-support-snap-classic.test TAP version 14 # random seed: R02S3dbb530b0bf9aad192f97abba6187e4a 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/simple-proxy.test TAP version 14 # random seed: R02Sa9c73502e566e120bfeb06388b9e1c2d 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/threadtests.test TAP version 14 # random seed: R02S4bacc3c5b0403dbb219e0ba58964c4fd 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/asyncqueue.test TAP version 14 # random seed: R02Sa5bc6b6e61030d144538edb613d2e663 1..7 # Start of asyncqueue tests ok 1 /asyncqueue/basics ok 2 /asyncqueue/sort ok 3 /asyncqueue/destroy ok 4 /asyncqueue/threads ok 5 /asyncqueue/timed ok 6 /asyncqueue/remove ok 7 /asyncqueue/push_front # End of asyncqueue tests PASS: glib/asyncqueue.test Running test: glib/hook.test TAP version 14 # random seed: R02S037ea7a326a3ffcf9db5d136fab92205 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/atomic-c-11.test TAP version 14 # random seed: R02S874037f583d5343962bde85d6ac127b7 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/gobject-private.test TAP version 14 # random seed: R02Scce53aaed1bb92cf68810a4ee103b6e5 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/refstring.test TAP version 14 # random seed: R02S19ea7633d498165c1bf53bceec5b2513 1..8 # Start of refstring tests # s = 'hello, world' (0x55be252aa8d0) ok 1 /refstring/base ok 2 /refstring/length ok 3 /refstring/length-auto ok 4 /refstring/length-nuls # s = 'hello, world' (0x55be252aa770) # p = s = 'hello, world' (0x55be252aa770) # releasing p[0x55be252aa770] ('hello, world') # p = 'goodbye, world' (0x55be252aa8d0) # releasing p[0x55be252aa8d0] ('goodbye, world') # releasing s[0x55be252aa770] ('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/onceinit.test TAP version 14 # random seed: R02S02d47b8041f3d2c01a4f542dbf8e4f7b 1..1 # Start of thread tests ok 1 /thread/onceinit # End of thread tests PASS: glib/onceinit.test Running test: glib/dump.test TAP version 14 # random seed: R02S27e794447f2d8cf16d4964912597bb1d 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/memory-input-stream.test TAP version 14 # random seed: R02S90337d59e727a594112b2f7aceef683d 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/singleton.test TAP version 14 # random seed: R02S5312eeee9f7215f33c4f15eb088f7056 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/references.test TAP version 14 # random seed: R02S8935abe89b7aed095bcbc6ea48c5e2c2 1..1 # Start of gobject tests ok 1 /gobject/references # End of gobject tests PASS: glib/references.test Running test: glib/signalgroup.test TAP version 14 # random seed: R02Sb3175b153cc00287f1995ea8f890096d 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/network-address.test TAP version 14 # random seed: R02Sccec73d051be76270b9f85b358d0d5a1 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 Executing: glib/network-address.test 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/properties.test TAP version 14 # random seed: R02S4ee958695e253e82d36c7bb9dae99116 1..14 # 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 notify tests ok 13 /properties/notify/too-many-freezes # End of notify tests # 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 14 /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/utils-isolated.test TAP version 14 # random seed: R02S03467c69c1738e6b3b1c495b5ca71fd9 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/refcount.test TAP version 14 # random seed: R02S72a1c4c16b744e51a24ebf25656c07d6 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/vfs.test TAP version 14 # random seed: R02Sa361671a153ff88ff1a9f948a1554e07 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/module-test-plugin.test TAP version 14 # random seed: R02Sf3a6e8fca8b36625ded1c17b9b3a0858 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/signals-refcount3.test TAP version 14 # random seed: R02S1013ddffa1ae9d9f8f9e7738edd37f83 1..1 # Start of gobject tests # Start of refcount tests # init 0x55684085e3f0 # # init 0x556840857600 # Executing: glib/signals-refcount3.test # dispose 0x55684085e3f0! # # dispose 0x556840857600! # 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/resolver-parsing.test TAP version 14 # random seed: R02S922fbda907150251878b1999abc54e0b 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/markup-escape.test TAP version 14 # random seed: R02S7abe625d0892a0979b742d4c40724640 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/memory-output-stream.test TAP version 14 # random seed: R02S04b94f93d8af1632ea3f3dba5d4c6ac3 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/utf8-misc.test TAP version 14 # random seed: R02S03b3b54680cc947525375201e4cb3e5c 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/sequence.test TAP version 14 # random seed: R02S6e4435b4cad527163264c42d67d9595b 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 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:70291280 # End of random tests # End of sequence tests PASS: glib/sequence.test Running test: glib/param.test Executing: glib/param.test TAP version 14 # random seed: R02S54121d9bfa6ced1c91a27d697608b089 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/file-thumbnail.test TAP version 14 # random seed: R02S14196c0a9ed8b5b12c926ef744eac6a5 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/glistmodel.test TAP version 14 # random seed: R02Sbdc2c7269e0eb24d966511b5e20b9328 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/cancellable.test TAP version 14 # random seed: R02Sbc339cdc9f08a305a46525efa37381ae 1..18 # Start of cancellable tests ok 1 /cancellable/multiple-concurrent # SKIP Not running timing heavy test ok 2 /cancellable/null ok 3 /cancellable/connect-data-is-destroyed-on-disconnect-and-dispose # /cancellable/connect-to-disposing-callback summary: A cancellable signal callback can unref the cancellable # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3643 ok 4 /cancellable/connect-to-disposing-callback ok 5 /cancellable/connect-cancelled-data-is-destroyed # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 1 # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 0 # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 1 ok 6 /cancellable/connect-to-disposing-callback-with-toggle-reference # /cancellable/connect-cancelled-to-disposing-callback summary: A cancellable signal callback can unref the cancellable # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3643 ok 7 /cancellable/connect-cancelled-to-disposing-callback ok 8 /cancellable/connect-cancelled-with-destroy-func-disposing-cancellable # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 1 # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 0 # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 1 # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 0 # Toggle reference callback for GCancellable (0x55d1b4cad520), last: 1 ok 9 /cancellable/connect-cancelled-to-disposing-callback-with-toggle-reference # /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 10 /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 11 /cancellable/resets-on-cancel-callback-hangs ok 12 /cancellable/poll-fd # /cancellable/poll-fd-cancelled summary: Tests that cancellation wakes up a pollable FD on creation ok 13 /cancellable/poll-fd-cancelled # /cancellable/poll-fd-cancelled-threaded summary: Tests that a cancellation wakes up a pollable FD ok 14 /cancellable/poll-fd-cancelled-threaded # /cancellable/cancel-reset-races summary: Tests threads racing for cancelling and resetting a GCancellable ok 15 /cancellable/cancel-reset-races # /cancellable/cancel-reset-connect-races summary: Tests threads racing for cancelling, connecting and disconnecting and resetting a GCancellable ok 16 /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 17 /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 18 /cancellable-source/can-be-fired-multiple-times # End of cancellable-source tests PASS: glib/cancellable.test Running test: glib/throws.test TAP version 14 # random seed: R02Sf1c4d62bb03e4c9559017528c2794bac 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/atomic-c-99.test TAP version 14 # random seed: R02Sec64690c6ca871e483eea7953e94dec3 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/boxed.test TAP version 14 # random seed: R02S4c27a84150f792d2f9bd4a3d92230a01 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/object-info.test TAP version 14 # random seed: R02Sbcfe473faab1614682596ca365a37984 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/module-test-library.test TAP version 14 # random seed: R02S437d4d35c825a13441e51f546cff1c00 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/credentials.test TAP version 14 # random seed: R02S5bc4317c00079c6a1c8cb2c1b19c1cfa 1..1 # Start of credentials tests # GCredentials:linux-ucred:pid=10738,uid=1000,gid=1000 # GCredentials:linux-ucred:pid=10738,uid=0,gid=1000 ok 1 /credentials/basic # End of credentials tests PASS: glib/credentials.test Running test: glib/keyfile.test TAP version 14 # random seed: R02Se1ce455f7037de38323ee094bcfa7a30 1..36 # Start of keyfile tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/line-ends/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/line-ends/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/line-ends/.dirs/system-config1:/var/volatile/tmp/keyfile/line-ends/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/line-ends/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/line-ends/.dirs/system-data1:/var/volatile/tmp/keyfile/line-ends/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/line-ends/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/line-ends/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/line-ends/.dirs/runtime ok 1 /keyfile/line-ends # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/whitespace/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/whitespace/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/whitespace/.dirs/system-config1:/var/volatile/tmp/keyfile/whitespace/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/whitespace/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/whitespace/.dirs/system-data1:/var/volatile/tmp/keyfile/whitespace/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/whitespace/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/whitespace/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/whitespace/.dirs/runtime ok 2 /keyfile/whitespace # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/comments/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/comments/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/comments/.dirs/system-config1:/var/volatile/tmp/keyfile/comments/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/comments/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/comments/.dirs/system-data1:/var/volatile/tmp/keyfile/comments/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/comments/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/comments/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/comments/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/listing/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/listing/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/listing/.dirs/system-config1:/var/volatile/tmp/keyfile/listing/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/listing/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/listing/.dirs/system-data1:/var/volatile/tmp/keyfile/listing/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/listing/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/listing/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/listing/.dirs/runtime ok 4 /keyfile/listing # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/string/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/string/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/string/.dirs/system-config1:/var/volatile/tmp/keyfile/string/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/string/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/string/.dirs/system-data1:/var/volatile/tmp/keyfile/string/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/string/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/string/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/string/.dirs/runtime ok 5 /keyfile/string # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/boolean/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/boolean/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/boolean/.dirs/system-config1:/var/volatile/tmp/keyfile/boolean/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/boolean/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/boolean/.dirs/system-data1:/var/volatile/tmp/keyfile/boolean/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/boolean/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/boolean/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/boolean/.dirs/runtime ok 6 /keyfile/boolean # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/number/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/number/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/number/.dirs/system-config1:/var/volatile/tmp/keyfile/number/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/number/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/number/.dirs/system-data1:/var/volatile/tmp/keyfile/number/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/number/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/number/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/number/.dirs/runtime ok 7 /keyfile/number # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/locale-string/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/locale-string/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/locale-string/.dirs/system-config1:/var/volatile/tmp/keyfile/locale-string/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/locale-string/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/locale-string/.dirs/system-data1:/var/volatile/tmp/keyfile/locale-string/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/locale-string/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/locale-string/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/locale-string/.dirs/runtime ok 8 /keyfile/locale-string # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/lists/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/lists/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/lists/.dirs/system-config1:/var/volatile/tmp/keyfile/lists/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/lists/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/lists/.dirs/system-data1:/var/volatile/tmp/keyfile/lists/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/lists/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/lists/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/lists/.dirs/runtime ok 9 /keyfile/lists # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/lists-set-get/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/lists-set-get/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/lists-set-get/.dirs/system-config1:/var/volatile/tmp/keyfile/lists-set-get/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/lists-set-get/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/lists-set-get/.dirs/system-data1:/var/volatile/tmp/keyfile/lists-set-get/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/lists-set-get/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/lists-set-get/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/lists-set-get/.dirs/runtime ok 10 /keyfile/lists-set-get # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/group-remove/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/group-remove/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/group-remove/.dirs/system-config1:/var/volatile/tmp/keyfile/group-remove/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/group-remove/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/group-remove/.dirs/system-data1:/var/volatile/tmp/keyfile/group-remove/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/group-remove/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/group-remove/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/group-remove/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=165887 ok 11 /keyfile/group-remove # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/key-remove/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/key-remove/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/key-remove/.dirs/system-config1:/var/volatile/tmp/keyfile/key-remove/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/key-remove/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/key-remove/.dirs/system-data1:/var/volatile/tmp/keyfile/key-remove/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/key-remove/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/key-remove/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/key-remove/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=165980 ok 12 /keyfile/key-remove # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/groups/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/groups/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/groups/.dirs/system-config1:/var/volatile/tmp/keyfile/groups/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/groups/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/groups/.dirs/system-data1:/var/volatile/tmp/keyfile/groups/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/groups/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/groups/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/groups/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=316309 ok 13 /keyfile/groups # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/system-config1:/var/volatile/tmp/keyfile/duplicate-keys/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/system-data1:/var/volatile/tmp/keyfile/duplicate-keys/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/duplicate-keys/.dirs/runtime ok 14 /keyfile/duplicate-keys # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/system-config1:/var/volatile/tmp/keyfile/duplicate-groups/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/system-data1:/var/volatile/tmp/keyfile/duplicate-groups/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/duplicate-groups/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=157877 ok 15 /keyfile/duplicate-groups # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/system-config1:/var/volatile/tmp/keyfile/duplicate-groups2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/system-data1:/var/volatile/tmp/keyfile/duplicate-groups2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/duplicate-groups2/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=385910 ok 16 /keyfile/duplicate-groups2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/group-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/group-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/group-names/.dirs/system-config1:/var/volatile/tmp/keyfile/group-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/group-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/group-names/.dirs/system-data1:/var/volatile/tmp/keyfile/group-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/group-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/group-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/group-names/.dirs/runtime ok 17 /keyfile/group-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/key-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/key-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/key-names/.dirs/system-config1:/var/volatile/tmp/keyfile/key-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/key-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/key-names/.dirs/system-data1:/var/volatile/tmp/keyfile/key-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/key-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/key-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/key-names/.dirs/runtime ok 18 /keyfile/key-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/reload/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/reload/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/reload/.dirs/system-config1:/var/volatile/tmp/keyfile/reload/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/reload/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/reload/.dirs/system-data1:/var/volatile/tmp/keyfile/reload/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/reload/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/reload/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/reload/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/int64/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/int64/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/int64/.dirs/system-config1:/var/volatile/tmp/keyfile/int64/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/int64/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/int64/.dirs/system-data1:/var/volatile/tmp/keyfile/int64/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/int64/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/int64/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/int64/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=614864 ok 20 /keyfile/int64 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/load/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/load/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/load/.dirs/system-config1:/var/volatile/tmp/keyfile/load/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/load/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/load/.dirs/system-data1:/var/volatile/tmp/keyfile/load/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/load/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/load/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/load/.dirs/runtime ok 21 /keyfile/load # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/save/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/save/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/save/.dirs/system-config1:/var/volatile/tmp/keyfile/save/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/save/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/save/.dirs/system-data1:/var/volatile/tmp/keyfile/save/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/save/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/save/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/save/.dirs/runtime ok 22 /keyfile/save # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/load-fail/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/load-fail/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/load-fail/.dirs/system-config1:/var/volatile/tmp/keyfile/load-fail/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/load-fail/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/load-fail/.dirs/system-data1:/var/volatile/tmp/keyfile/load-fail/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/load-fail/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/load-fail/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/load-fail/.dirs/runtime ok 23 /keyfile/load-fail # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/non-utf8/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/non-utf8/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/non-utf8/.dirs/system-config1:/var/volatile/tmp/keyfile/non-utf8/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/non-utf8/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/non-utf8/.dirs/system-data1:/var/volatile/tmp/keyfile/non-utf8/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/non-utf8/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/non-utf8/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/non-utf8/.dirs/runtime ok 24 /keyfile/non-utf8 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/page-boundary/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/page-boundary/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/page-boundary/.dirs/system-config1:/var/volatile/tmp/keyfile/page-boundary/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/page-boundary/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/page-boundary/.dirs/system-data1:/var/volatile/tmp/keyfile/page-boundary/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/page-boundary/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/page-boundary/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/page-boundary/.dirs/runtime # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=640695 ok 25 /keyfile/page-boundary # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/ref/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/ref/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/ref/.dirs/system-config1:/var/volatile/tmp/keyfile/ref/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/ref/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/ref/.dirs/system-data1:/var/volatile/tmp/keyfile/ref/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/ref/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/ref/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/ref/.dirs/runtime ok 26 /keyfile/ref # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/replace-value/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/replace-value/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/replace-value/.dirs/system-config1:/var/volatile/tmp/keyfile/replace-value/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/replace-value/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/replace-value/.dirs/system-data1:/var/volatile/tmp/keyfile/replace-value/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/replace-value/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/replace-value/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/replace-value/.dirs/runtime ok 27 /keyfile/replace-value # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/list-separator/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/list-separator/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/list-separator/.dirs/system-config1:/var/volatile/tmp/keyfile/list-separator/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/list-separator/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/list-separator/.dirs/system-data1:/var/volatile/tmp/keyfile/list-separator/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/list-separator/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/list-separator/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/list-separator/.dirs/runtime ok 28 /keyfile/list-separator # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/empty-string/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/empty-string/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/empty-string/.dirs/system-config1:/var/volatile/tmp/keyfile/empty-string/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/empty-string/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/empty-string/.dirs/system-data1:/var/volatile/tmp/keyfile/empty-string/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/empty-string/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/empty-string/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/empty-string/.dirs/runtime ok 29 /keyfile/empty-string # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/limbo/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/limbo/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/limbo/.dirs/system-config1:/var/volatile/tmp/keyfile/limbo/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/limbo/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/limbo/.dirs/system-data1:/var/volatile/tmp/keyfile/limbo/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/limbo/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/limbo/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/limbo/.dirs/runtime ok 30 /keyfile/limbo # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/utf8/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/utf8/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/utf8/.dirs/system-config1:/var/volatile/tmp/keyfile/utf8/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/utf8/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/utf8/.dirs/system-data1:/var/volatile/tmp/keyfile/utf8/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/utf8/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/utf8/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/utf8/.dirs/runtime # Testing invalid encoding ?non-UTF-8? # Testing invalid encoding ?UTF? # Testing invalid encoding ?UTF-9? ok 31 /keyfile/utf8 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/roundtrip/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/roundtrip/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/roundtrip/.dirs/system-config1:/var/volatile/tmp/keyfile/roundtrip/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/roundtrip/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/roundtrip/.dirs/system-data1:/var/volatile/tmp/keyfile/roundtrip/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/roundtrip/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/roundtrip/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/roundtrip/.dirs/runtime ok 32 /keyfile/roundtrip # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/bytes/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/bytes/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/bytes/.dirs/system-config1:/var/volatile/tmp/keyfile/bytes/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/bytes/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/bytes/.dirs/system-data1:/var/volatile/tmp/keyfile/bytes/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/bytes/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/bytes/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/bytes/.dirs/runtime ok 33 /keyfile/bytes # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/get-locale/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/get-locale/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/get-locale/.dirs/system-config1:/var/volatile/tmp/keyfile/get-locale/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/get-locale/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/get-locale/.dirs/system-data1:/var/volatile/tmp/keyfile/get-locale/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/get-locale/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/get-locale/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/get-locale/.dirs/runtime ok 34 /keyfile/get-locale # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/system-config1:/var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/system-data1:/var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/free-when-not-last-ref/.dirs/runtime ok 35 /keyfile/free-when-not-last-ref # Start of locale-string tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/system-config1:/var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/system-data1:/var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/keyfile/locale-string/multiple-loads/.dirs/runtime # /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/power-profile-monitor.test TAP version 14 # random seed: R02Se1157250d2125a6ab523bbe7d21f5671 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/utils-c-17.test TAP version 14 # random seed: R02S7f398cf6b639586977ddd0bdcdad4e33 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/tls-certificate.test TAP version 14 # random seed: R02S1a83b2a5c489e9f83f55519d60ce0655 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/hash.test TAP version 14 # random seed: R02Sd64f14fe92d6289532e2acffdac41f08 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/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/tmpiyjp8hdw # /tmp/tmpiyjp8hdw/tmpwuhq7ouv.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpiyjp8hdw/tmpwuhq7ouv.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 # # 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/tmpiyjp8hdw/tmpeldtrbr7.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpiyjp8hdw/tmpeldtrbr7.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 # # 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/tmpiyjp8hdw/tmpn0xbhkc7.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpiyjp8hdw/tmpn0xbhkc7.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 # # 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/tmpmmb2vuk9 # /tmp/tmpmmb2vuk9/tmpemse6_97.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpemse6_97.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/tmpmmb2vuk9/tmpy2tuyfno.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpy2tuyfno.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/tmpmmb2vuk9/tmp1prbfz7n.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmp1prbfz7n.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "{s". Error parsing string or brackets not closed. # /tmp/tmpmmb2vuk9/tmposqde21y.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmposqde21y.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(s{sss})". Dict must end with "}" at position 5. # /tmp/tmpmmb2vuk9/tmpu1m8k63y.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpu1m8k63y.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "z". "z" is not a valid D-Bus type. # /tmp/tmpmmb2vuk9/tmp68paeusm.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmp68paeusm.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(ssms)". "m" is not a valid D-Bus type. # /tmp/tmpmmb2vuk9/tmpkesp3h8p.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpkesp3h8p.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(". Error parsing string or brackets not closed. # /tmp/tmpmmb2vuk9/tmp4f_o7f2p.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmp4f_o7f2p.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(((ss))". Error parsing string or brackets not closed. # /tmp/tmpmmb2vuk9/tmpj84mmc96.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpj84mmc96.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas". Too much recursion beginning at 129. # /tmp/tmpmmb2vuk9/tmpq2tjf3v3.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpq2tjf3v3.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: D-Bus maximum signature length of 255 exceeded. # /tmp/tmpmmb2vuk9/tmp_jbhs35h.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmp_jbhs35h.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: D-Bus maximum signature length of 255 exceeded. # /tmp/tmpmmb2vuk9/tmphlmv04rt.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmphlmv04rt.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaa{sv})". Too much recursion beginning at 129. # /tmp/tmpmmb2vuk9/tmpydtvgwxv.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpydtvgwxv.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: D-Bus maximum signature length of 255 exceeded. # /tmp/tmpmmb2vuk9/tmpg2sqo8ky.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpg2sqo8ky.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 # #ifdef G_OS_UNIX # # include # #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 GoodTypes 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 GoodTypes 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 GoodTypes 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 GoodTypes. # */ # # /** # * 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 GoodTypes. # */ # # 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 "GoodPropertyType". # * # * 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 GoodTypes. # * # * Gets the value of the "GoodPropertyType" 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 GoodTypes. # * # * Gets a copy of the "GoodPropertyType" 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 GoodTypes. # * @value: The value to set. # * # * Sets the "GoodPropertyType" 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 GoodTypesProxy structure contains only private data and should only be accessed using the provided API. # */ # # /** # * GoodTypesProxyClass: # * @parent_class: The parent class. # * # * Class structure for GoodTypesProxy. # */ # # 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 (¶mv[0], TYPE_GOOD_TYPES); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 GoodTypes. 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 GoodTypes. 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 GoodTypesSkeleton structure contains only private data and should only be accessed using the provided API. # */ # # /** # * GoodTypesSkeletonClass: # * @parent_class: The parent class. # * # * Class structure for GoodTypesSkeleton. # */ # # 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 (¶mv[n], TYPE_GOOD_TYPES); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 GoodTypes. # * # * 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/tmpmmb2vuk9/tmp4q35m_4w.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmp4q35m_4w.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 # #ifdef G_OS_UNIX # # include # #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 GoodTypes 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 GoodTypes 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 GoodTypes 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 GoodTypes. # */ # # /** # * 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 GoodTypes. # */ # # 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 "GoodPropertyType". # * # * 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 GoodTypes. # * # * Gets the value of the "GoodPropertyType" 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 GoodTypes. # * # * Gets a copy of the "GoodPropertyType" 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 GoodTypes. # * @value: The value to set. # * # * Sets the "GoodPropertyType" 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 GoodTypesProxy structure contains only private data and should only be accessed using the provided API. # */ # # /** # * GoodTypesProxyClass: # * @parent_class: The parent class. # * # * Class structure for GoodTypesProxy. # */ # # 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 (¶mv[0], TYPE_GOOD_TYPES); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 GoodTypes. 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 GoodTypes. 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 GoodTypesSkeleton structure contains only private data and should only be accessed using the provided API. # */ # # /** # * GoodTypesSkeletonClass: # * @parent_class: The parent class. # * # * Class structure for GoodTypesSkeleton. # */ # # 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 (¶mv[n], TYPE_GOOD_TYPES); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 GoodTypes. # * # * 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/tmpmmb2vuk9/tmpauw19okn.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmmb2vuk9/tmpauw19okn.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 # #ifdef G_OS_UNIX # # include # #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 GoodTypes 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 GoodTypes 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 GoodTypes 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 GoodTypes. # */ # # /** # * 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 GoodTypes. # */ # # 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 "GoodPropertyType". # * # * 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 GoodTypes. # * # * Gets the value of the "GoodPropertyType" 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 GoodTypes. # * # * Gets a copy of the "GoodPropertyType" 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 GoodTypes. # * @value: The value to set. # * # * Sets the "GoodPropertyType" 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 GoodTypesProxy structure contains only private data and should only be accessed using the provided API. # */ # # /** # * GoodTypesProxyClass: # * @parent_class: The parent class. # * # * Class structure for GoodTypesProxy. # */ # # 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 (¶mv[0], TYPE_GOOD_TYPES); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 GoodTypes. 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 GoodTypes. 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 GoodTypesSkeleton structure contains only private data and should only be accessed using the provided API. # */ # # /** # * GoodTypesSkeletonClass: # * @parent_class: The parent class. # * # * Class structure for GoodTypesSkeleton. # */ # # 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 (¶mv[n], TYPE_GOOD_TYPES); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 GoodTypes. # * # * 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/tmppz83z1bz # /tmp/tmppz83z1bz/tmpkg3nwvlp.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmppz83z1bz/tmpkg3nwvlp.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 # #ifdef G_OS_UNIX # # include # #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/tmphbhdimx9 # /tmp/tmphbhdimx9/tmplllndmws.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmphbhdimx9/tmplllndmws.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 # # 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/tmp55r1w7ke # /tmp/tmp55r1w7ke/tmpb10p30l7.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp55r1w7ke/tmpb10p30l7.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 # Error: ok 6 __main__.TestCodegen.test_empty_interface_info_header # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpxaaeoe00 # /tmp/tmpxaaeoe00/tmp90mjbdly.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpxaaeoe00/tmp90mjbdly.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 # # G_BEGIN_DECLS # # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: ok 7 __main__.TestCodegen.test_generate_docbook # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmprtp9vfxz # /tmp/tmprtp9vfxz/tmp4pgleium.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmprtp9vfxz/tmp4pgleium.xml', '--generate-docbook', 'test'] # Return code: 0 # Output: # # Error: ok 8 __main__.TestCodegen.test_generate_md # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpmnbx41dj # /tmp/tmpmnbx41dj/tmp3q217shq.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmnbx41dj/tmp3q217shq.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/tmptcv4_72t # /tmp/tmptcv4_72t/tmp_ogcdguj.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmptcv4_72t/tmp_ogcdguj.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 # #ifdef G_OS_UNIX # # include # #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 org.project.CallableIface 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 org.project.CallableIface 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 org.project.CallableIface. # */ # # /** # * OrgProjectCallableIfaceIface: # * @parent_iface: The parent interface. # * @handle_simple_method: Handler for the #OrgProjectCallableIface::handle-simple-method signal. # * # * Virtual table for the D-Bus interface org.project.CallableIface. # */ # # 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 SimpleMethod() 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 SimpleMethod() 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 SimpleMethod() 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 SimpleMethod() 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 (¶mv[0], TYPE_ORG_PROJECT_CALLABLE_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.CallableIface. 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 org.project.CallableIface. 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 (¶mv[n], TYPE_ORG_PROJECT_CALLABLE_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.CallableIface. # * # * 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 org.project.OtherCallableIface 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 org.project.OtherCallableIface 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 org.project.OtherCallableIface. # */ # # /** # * OrgProjectOtherCallableIfaceIface: # * @parent_iface: The parent interface. # * @handle_simple_method: Handler for the #OrgProjectOtherCallableIface::handle-simple-method signal. # * # * Virtual table for the D-Bus interface org.project.OtherCallableIface. # */ # # 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 SimpleMethod() 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 SimpleMethod() 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 SimpleMethod() 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 SimpleMethod() 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 (¶mv[0], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherCallableIface. 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 org.project.OtherCallableIface. 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 (¶mv[n], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherCallableIface. # * # * 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/tmpbg01lg1m # /tmp/tmpbg01lg1m/tmp1jr51vgx.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmp1jr51vgx.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodB() 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 SingleArgMethodB() 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 SingleArgMethodB() 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 SingleArgMethodB() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmput0h31eb.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmput0h31eb.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodY() 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 SingleArgMethodY() 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 SingleArgMethodY() 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 SingleArgMethodY() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpurj5ju2v.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpurj5ju2v.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodN() 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 SingleArgMethodN() 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 SingleArgMethodN() 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 SingleArgMethodN() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpns1s25xo.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpns1s25xo.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodQ() 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 SingleArgMethodQ() 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 SingleArgMethodQ() 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 SingleArgMethodQ() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpbpg6feht.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpbpg6feht.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodI() 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 SingleArgMethodI() 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 SingleArgMethodI() 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 SingleArgMethodI() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpk85ec8zi.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpk85ec8zi.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodU() 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 SingleArgMethodU() 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 SingleArgMethodU() 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 SingleArgMethodU() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpfnpdaguh.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpfnpdaguh.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodX() 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 SingleArgMethodX() 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 SingleArgMethodX() 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 SingleArgMethodX() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmp2wo1476a.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmp2wo1476a.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodT() 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 SingleArgMethodT() 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 SingleArgMethodT() 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 SingleArgMethodT() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpradrkzkz.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpradrkzkz.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodD() 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 SingleArgMethodD() 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 SingleArgMethodD() 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 SingleArgMethodD() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpi809bxlo.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpi809bxlo.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodS() 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 SingleArgMethodS() 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 SingleArgMethodS() 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 SingleArgMethodS() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmp7p1zskvw.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmp7p1zskvw.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodO() 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 SingleArgMethodO() 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 SingleArgMethodO() 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 SingleArgMethodO() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpd4n6tjtm.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpd4n6tjtm.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodG() 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 SingleArgMethodG() 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 SingleArgMethodG() 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 SingleArgMethodG() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpshtsu86z.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpshtsu86z.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodH() 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 SingleArgMethodH() 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 SingleArgMethodH() 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 SingleArgMethodH() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmp6cfjfw09.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmp6cfjfw09.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAy() 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 SingleArgMethodAy() 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 SingleArgMethodAy() 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 SingleArgMethodAy() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmp1zj3rfyq.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmp1zj3rfyq.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAs() 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 SingleArgMethodAs() 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 SingleArgMethodAs() 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 SingleArgMethodAs() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpfj44g_te.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpfj44g_te.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAo() 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 SingleArgMethodAo() 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 SingleArgMethodAo() 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 SingleArgMethodAo() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpfuhqq0a0.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpfuhqq0a0.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAay() 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 SingleArgMethodAay() 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 SingleArgMethodAay() 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 SingleArgMethodAay() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmpbg01lg1m/tmpz2s1hj8j.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbg01lg1m/tmpz2s1hj8j.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAsv() 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 SingleArgMethodAsv() 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 SingleArgMethodAsv() 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 SingleArgMethodAsv() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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: Executing: glib/codegen.py.test ok 11 __main__.TestCodegen.test_generate_methods_marshaller_single_typed_out_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp6k3jii7b # /tmp/tmp6k3jii7b/tmpr2yl2am_.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpr2yl2am_.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodB() 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 SingleArgMethodB() 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 SingleArgMethodB() 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 SingleArgMethodB() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpztz43w8e.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpztz43w8e.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodY() 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 SingleArgMethodY() 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 SingleArgMethodY() 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 SingleArgMethodY() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmp2sbdp4fz.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmp2sbdp4fz.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodN() 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 SingleArgMethodN() 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 SingleArgMethodN() 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 SingleArgMethodN() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmp7oo5h44y.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmp7oo5h44y.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodQ() 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 SingleArgMethodQ() 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 SingleArgMethodQ() 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 SingleArgMethodQ() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpo4xzhsbh.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpo4xzhsbh.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodI() 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 SingleArgMethodI() 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 SingleArgMethodI() 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 SingleArgMethodI() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpeuzw5t7h.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpeuzw5t7h.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodU() 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 SingleArgMethodU() 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 SingleArgMethodU() 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 SingleArgMethodU() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmplk4bc55j.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmplk4bc55j.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodX() 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 SingleArgMethodX() 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 SingleArgMethodX() 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 SingleArgMethodX() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpxvsiqpm6.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpxvsiqpm6.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodT() 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 SingleArgMethodT() 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 SingleArgMethodT() 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 SingleArgMethodT() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmp7y2ve4qx.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmp7y2ve4qx.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodD() 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 SingleArgMethodD() 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 SingleArgMethodD() 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 SingleArgMethodD() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmp1gqltea8.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmp1gqltea8.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodS() 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 SingleArgMethodS() 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 SingleArgMethodS() 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 SingleArgMethodS() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmp19fc7zbv.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmp19fc7zbv.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodO() 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 SingleArgMethodO() 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 SingleArgMethodO() 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 SingleArgMethodO() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmp3w0wcfc_.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmp3w0wcfc_.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodG() 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 SingleArgMethodG() 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 SingleArgMethodG() 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 SingleArgMethodG() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpl1s0uiqz.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpl1s0uiqz.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodH() 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 SingleArgMethodH() 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 SingleArgMethodH() 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 SingleArgMethodH() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpym_ff7md.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpym_ff7md.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAy() 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 SingleArgMethodAy() 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 SingleArgMethodAy() 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 SingleArgMethodAy() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpxjzj6jm2.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpxjzj6jm2.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAs() 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 SingleArgMethodAs() 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 SingleArgMethodAs() 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 SingleArgMethodAs() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmplqo8ivqg.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmplqo8ivqg.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAo() 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 SingleArgMethodAo() 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 SingleArgMethodAo() 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 SingleArgMethodAo() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpelb3p60b.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpelb3p60b.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAay() 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 SingleArgMethodAay() 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 SingleArgMethodAay() 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 SingleArgMethodAay() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmp6k3jii7b/tmpd08i3966.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6k3jii7b/tmpd08i3966.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * 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 org.project.UsefulInterface. # */ # # 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 SingleArgMethodAsv() 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 SingleArgMethodAsv() 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 SingleArgMethodAsv() 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 SingleArgMethodAsv() 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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/tmppb253_by # /tmp/tmppb253_by/tmp2szm22wh.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmppb253_by/tmp2szm22wh.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 # #ifdef G_OS_UNIX # # include # #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 org.project.CallableIface 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 org.project.CallableIface 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 org.project.CallableIface. # */ # # /** # * 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 org.project.CallableIface. # */ # # 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 MethodWithManyArgs() 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 SameMethodWithManyArgs() 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 SameMethodWithManyArgs() 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 SameMethodWithManyArgs() 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 MethodWithManyArgs() 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 SameMethodWithManyArgs() 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 (¶mv[0], TYPE_ORG_PROJECT_CALLABLE_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.CallableIface. 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 org.project.CallableIface. 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 (¶mv[n], TYPE_ORG_PROJECT_CALLABLE_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.CallableIface. # * # * 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 org.project.OtherCallableIface 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 org.project.OtherCallableIface 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 org.project.OtherCallableIface. # */ # # /** # * 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 org.project.OtherCallableIface. # */ # # 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 (¶mv[0], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherCallableIface. 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 org.project.OtherCallableIface. 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 (¶mv[n], TYPE_ORG_PROJECT_OTHER_CALLABLE_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherCallableIface. # * # * 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/tmpul9mp_i4 # /tmp/tmpul9mp_i4/tmpi7yrv2n_.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpul9mp_i4/tmpi7yrv2n_.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 # #ifdef G_OS_UNIX # # include # #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 org.project.CallableIface 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 org.project.CallableIface 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 org.project.CallableIface. # */ # # /** # * 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 org.project.CallableIface. # */ # # 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 MethodWithManyArgs() 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 (¶mv[0], TYPE_ORG_PROJECT_CALLABLE_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.CallableIface. 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 org.project.CallableIface. 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 (¶mv[n], TYPE_ORG_PROJECT_CALLABLE_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.CallableIface. # * # * 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/tmp7aoas0j1 # /tmp/tmp7aoas0j1/tmp1nxjicrq.xml: # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp7aoas0j1/tmp1nxjicrq.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 # #ifdef G_OS_UNIX # # include # #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 test.FDPassing 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 test.FDPassing 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 test.FDPassing. # */ # # /** # * TestFDPassingIface: # * @parent_iface: The parent interface. # * @handle_hello_fd: Handler for the #TestFDPassing::handle-hello-fd signal. # * # * Virtual table for the D-Bus interface test.FDPassing. # */ # # 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 HelloFD() 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 HelloFD() 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 HelloFD() 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 HelloFD() 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 (¶mv[0], TYPE_TEST_FDPASSING); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 test.FDPassing. 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 test.FDPassing. 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 (¶mv[n], TYPE_TEST_FDPASSING); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 test.FDPassing. # * # * 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/tmpfgitlfp3 # /tmp/tmpfgitlfp3/tmpd2q9vk0e.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpfgitlfp3/tmpd2q9vk0e.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/tmpgqx53gre # /tmp/tmpgqx53gre/tmp18sx9x64.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpgqx53gre/tmp18sx9x64.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/tmpngnqb3yq # /tmp/tmpngnqb3yq/tmpiwu772uz.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpngnqb3yq/tmpiwu772uz.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/tmpzsp6n1ys # /tmp/tmpzsp6n1ys/tmpme44av4a.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpzsp6n1ys/tmpme44av4a.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: ok 19 __main__.TestCodegen.test_generate_signal_id_multiple_signal_args_types # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpgj3r35aw # /tmp/tmpgj3r35aw/tmpci30wnav.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpgj3r35aw/tmpci30wnav.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SignalWithManyArgs" 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 "SignalWithManyArgs" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpl4mhjw_w # /tmp/tmpl4mhjw_w/tmpd28atckd.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpl4mhjw_w/tmpd28atckd.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "NoArgSignal" 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 "SingleArgSignalB" 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 "SingleArgSignalY" 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 "SingleArgSignalN" 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 "SingleArgSignalQ" 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 "SingleArgSignalI" 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 "SingleArgSignalU" 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 "SingleArgSignalX" 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 "SingleArgSignalT" 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 "SingleArgSignalD" 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 "SingleArgSignalS" 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 "SingleArgSignalO" 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 "SingleArgSignalG" 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 "SingleArgSignalH" 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 "SingleArgSignalAY" 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 "SingleArgSignalAS" 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 "SingleArgSignalAO" 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 "SingleArgSignalAAY" 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 "SingleArgSignalASV" 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 "NoArgSignal" 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 "SingleArgSignalB" 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 "SingleArgSignalY" 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 "SingleArgSignalN" 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 "SingleArgSignalQ" 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 "SingleArgSignalI" 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 "SingleArgSignalU" 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 "SingleArgSignalX" 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 "SingleArgSignalT" 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 "SingleArgSignalD" 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 "SingleArgSignalS" 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 "SingleArgSignalO" 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 "SingleArgSignalG" 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 "SingleArgSignalH" 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 "SingleArgSignalAY" 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 "SingleArgSignalAS" 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 "SingleArgSignalAO" 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 "SingleArgSignalAAY" 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 "SingleArgSignalASV" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmph8gbp7d6 # /tmp/tmph8gbp7d6/tmp52x8avhu.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmph8gbp7d6/tmp52x8avhu.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 # #ifdef G_OS_UNIX # # include # #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 org.project.UsefulInterface 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 org.project.UsefulInterface 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 org.project.UsefulInterface. # */ # # /** # * OrgProjectUsefulInterfaceIface: # * @parent_iface: The parent interface. # * @simple_signal: Handler for the #OrgProjectUsefulInterface::simple-signal signal. # * # * Virtual table for the D-Bus interface org.project.UsefulInterface. # */ # # 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 "SimpleSignal" 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 "SimpleSignal" 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 (¶mv[0], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. 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 org.project.UsefulInterface. 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 (¶mv[n], TYPE_ORG_PROJECT_USEFUL_INTERFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.UsefulInterface. # * # * 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 org.project.OtherIface 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 org.project.OtherIface 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 org.project.OtherIface. # */ # # /** # * OrgProjectOtherIfaceIface: # * @parent_iface: The parent interface. # * @simple_signal: Handler for the #OrgProjectOtherIface::simple-signal signal. # * # * Virtual table for the D-Bus interface org.project.OtherIface. # */ # # 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 "SimpleSignal" 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 "SimpleSignal" 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 (¶mv[0], TYPE_ORG_PROJECT_OTHER_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherIface. 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 org.project.OtherIface. 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 (¶mv[n], TYPE_ORG_PROJECT_OTHER_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherIface. # * # * 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/tmpktozz4s1 # /tmp/tmpktozz4s1/tmpq_1wv8we.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpktozz4s1/tmpq_1wv8we.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * OrgProjectSignalingIfaceIface: # * @parent_iface: The parent interface. # * @simple_signal: Handler for the #OrgProjectSignalingIface::simple-signal signal. # * # * Virtual table for the D-Bus interface org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SimpleSignal" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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 org.project.OtherSignalingIface 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 org.project.OtherSignalingIface 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 org.project.OtherSignalingIface. # */ # # /** # * OrgProjectOtherSignalingIfaceIface: # * @parent_iface: The parent interface. # * @simple_signal: Handler for the #OrgProjectOtherSignalingIface::simple-signal signal. # * # * Virtual table for the D-Bus interface org.project.OtherSignalingIface. # */ # # 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 "SimpleSignal" 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 "SimpleSignal" 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 (¶mv[0], TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherSignalingIface. 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 org.project.OtherSignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_OTHER_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.OtherSignalingIface. # * # * 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/tmpsnd75ig3 # /tmp/tmpsnd75ig3/tmpopx_pa2n.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpopx_pa2n.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalB" 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 "SimpleSignal" 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 "SingleArgSignalB" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpgkg7hs4r.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpgkg7hs4r.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalY" 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 "SimpleSignal" 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 "SingleArgSignalY" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpg9xi_r9u.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpg9xi_r9u.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalN" 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 "SimpleSignal" 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 "SingleArgSignalN" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp8ae_r8pf.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp8ae_r8pf.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalQ" 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 "SimpleSignal" 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 "SingleArgSignalQ" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp9qorv1lx.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp9qorv1lx.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalI" 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 "SimpleSignal" 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 "SingleArgSignalI" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp6l4p7i3j.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp6l4p7i3j.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalU" 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 "SimpleSignal" 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 "SingleArgSignalU" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp_hm2k0we.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp_hm2k0we.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalX" 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 "SimpleSignal" 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 "SingleArgSignalX" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpunffdhom.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpunffdhom.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalT" 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 "SimpleSignal" 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 "SingleArgSignalT" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp9x5gfnox.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp9x5gfnox.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalD" 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 "SimpleSignal" 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 "SingleArgSignalD" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp10jdg3l7.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp10jdg3l7.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalS" 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 "SimpleSignal" 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 "SingleArgSignalS" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpunfcte19.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpunfcte19.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalO" 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 "SimpleSignal" 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 "SingleArgSignalO" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpehrlemtt.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpehrlemtt.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalG" 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 "SimpleSignal" 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 "SingleArgSignalG" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpnxau2inq.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpnxau2inq.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalH" 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 "SimpleSignal" 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 "SingleArgSignalH" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmprt9r4vpu.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmprt9r4vpu.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalAy" 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 "SimpleSignal" 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 "SingleArgSignalAy" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmp8zk6lphk.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmp8zk6lphk.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalAs" 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 "SimpleSignal" 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 "SingleArgSignalAs" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpc67prdas.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpc67prdas.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalAo" 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 "SimpleSignal" 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 "SingleArgSignalAo" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpwul1ckxo.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpwul1ckxo.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalAay" 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 "SimpleSignal" 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 "SingleArgSignalAay" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpsnd75ig3/tmpze78u886.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsnd75ig3/tmpze78u886.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SingleArgSignalAsv" 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 "SimpleSignal" 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 "SingleArgSignalAsv" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmpvy38djmr # /tmp/tmpvy38djmr/tmp4b6fy96i.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpvy38djmr/tmp4b6fy96i.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 # #ifdef G_OS_UNIX # # include # #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 org.project.SignalingIface 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 org.project.SignalingIface 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 org.project.SignalingIface. # */ # # /** # * 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 org.project.SignalingIface. # */ # # 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 "SimpleSignal" 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 "SignalWithManyArgs" 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 "SimpleSignal" 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 "SignalWithManyArgs" 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 (¶mv[0], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. 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 org.project.SignalingIface. 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 (¶mv[n], TYPE_ORG_PROJECT_SIGNALING_IFACE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.SignalingIface. # * # * 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/tmp28nok5qo # /tmp/tmp28nok5qo/tmpp795819g.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp28nok5qo/tmpp795819g.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/tmp4gdomkh1 # /tmp/tmp4gdomkh1/tmpezj5_xe_.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp4gdomkh1/tmpezj5_xe_.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/tmpa5fd4aym # /tmp/tmpa5fd4aym/tmpveztr3fv.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpa5fd4aym/tmpveztr3fv.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 # # 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/tmp2o0csmpe # /tmp/tmp2o0csmpe/tmppy3dzoot.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp2o0csmpe/tmppy3dzoot.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/tmpxzoyuws0 # /tmp/tmpxzoyuws0/tmp9csgu17z.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpxzoyuws0/tmp9csgu17z.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 # # 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/tmp1wchq_ll # /tmp/tmp1wchq_ll/tmpwpazzurp.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp1wchq_ll/tmpwpazzurp.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 # # 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/tmpsep4wpbr # /tmp/tmpsep4wpbr/tmpxbhmxp51.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpsep4wpbr/tmpxbhmxp51.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/tmpeois39cl # /tmp/tmpeois39cl/tmpguc3l5ig.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeois39cl/tmpguc3l5ig.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 # # 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/tmpdjz1y5c9 # /tmp/tmpdjz1y5c9/tmpw9vrqki2.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpdjz1y5c9/tmpw9vrqki2.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/tmpstitm9wx # /tmp/tmpstitm9wx/tmpfejoomgp.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpstitm9wx/tmpfejoomgp.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 # # G_BEGIN_DECLS # # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: ok 35 __main__.TestCodegen.test_help # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmputbtj3gr # 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/tmpyfbyh_oi # /tmp/tmpyfbyh_oi/tmp0wjscs37.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpyfbyh_oi/tmp0wjscs37.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: # # /tmp/tmpyfbyh_oi/tmp8wkzvtwc.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpyfbyh_oi/tmp8wkzvtwc.xml', '--generate-md', 'test'] # Return code: 0 # Output: # # Error: # # /tmp/tmpyfbyh_oi/tmp8y8enzu5.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpyfbyh_oi/tmp8y8enzu5.xml', '--generate-docbook', 'test'] # Return code: 0 # Output: # # Error: ok 37 __main__.TestCodegen.test_no_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp_p2jtcs2 # 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 Executing: glib/codegen.py.test ok 38 __main__.TestCodegen.test_reproducible # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpogsxbii2 # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpogsxbii2/tmp7msa_n9u1.xml', '/tmp/tmpogsxbii2/tmp7zfkcufm2.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 # # G_BEGIN_DECLS # # # /* ------------------------------------------------------------------------ */ # /* 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); # # # /* ------------------------------------------------------------------------ */ # /* 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); # # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpogsxbii2/tmp7zfkcufm2.xml', '/tmp/tmpogsxbii2/tmp7msa_n9u1.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 # # G_BEGIN_DECLS # # # /* ------------------------------------------------------------------------ */ # /* 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); # # # /* ------------------------------------------------------------------------ */ # /* 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); # # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpogsxbii2/tmp7msa_n9u1.xml', '/tmp/tmpogsxbii2/tmp7zfkcufm2.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 # #ifdef G_OS_UNIX # # include # #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 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 com.acme.Coyote 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 com.acme.Coyote 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 com.acme.Coyote. # */ # # /** # * 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 com.acme.Coyote. # */ # # 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 Run() 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 Sleep() 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 Attack() 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 "Surprised" 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 "Mood". # * # * 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 "Mood" 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 "Mood" 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 "Mood" 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 "Surprised" 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 Run() 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 Run() 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 Sleep() 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 Sleep() 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 Attack() 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 Attack() 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 Run() 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 Sleep() 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 Attack() 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 (¶mv[0], TYPE_COM_ACME_COYOTE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 com.acme.Coyote. 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 com.acme.Coyote. 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 (¶mv[n], TYPE_COM_ACME_COYOTE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 com.acme.Coyote. # * # * 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)); # } # # /* ------------------------------------------------------------------------ # * 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 org.project.Bar.Frobnicator 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 org.project.Bar.Frobnicator 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 org.project.Bar.Frobnicator. # */ # # /** # * OrgProjectBarFrobnicatorIface: # * @parent_iface: The parent interface. # * @handle_random_method: Handler for the #OrgProjectBarFrobnicator::handle-random-method signal. # * # * Virtual table for the D-Bus interface org.project.Bar.Frobnicator. # */ # # 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 RandomMethod() 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 RandomMethod() 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 RandomMethod() 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 RandomMethod() 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 (¶mv[0], TYPE_ORG_PROJECT_BAR_FROBNICATOR); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.Bar.Frobnicator. 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 org.project.Bar.Frobnicator. 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 (¶mv[n], TYPE_ORG_PROJECT_BAR_FROBNICATOR); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.Bar.Frobnicator. # * # * 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)); # } # Error: # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpogsxbii2/tmp7zfkcufm2.xml', '/tmp/tmpogsxbii2/tmp7msa_n9u1.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 # #ifdef G_OS_UNIX # # include # #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 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 com.acme.Coyote 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 com.acme.Coyote 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 com.acme.Coyote. # */ # # /** # * 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 com.acme.Coyote. # */ # # 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 Run() 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 Sleep() 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 Attack() 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 "Surprised" 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 "Mood". # * # * 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 "Mood" 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 "Mood" 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 "Mood" 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 "Surprised" 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 Run() 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 Run() 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 Sleep() 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 Sleep() 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 Attack() 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 Attack() 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 Run() 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 Sleep() 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 Attack() 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 (¶mv[0], TYPE_COM_ACME_COYOTE); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 com.acme.Coyote. 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 com.acme.Coyote. 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 (¶mv[n], TYPE_COM_ACME_COYOTE); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 com.acme.Coyote. # * # * 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)); # } # # /* ------------------------------------------------------------------------ # * 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 org.project.Bar.Frobnicator 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 org.project.Bar.Frobnicator 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 org.project.Bar.Frobnicator. # */ # # /** # * OrgProjectBarFrobnicatorIface: # * @parent_iface: The parent interface. # * @handle_random_method: Handler for the #OrgProjectBarFrobnicator::handle-random-method signal. # * # * Virtual table for the D-Bus interface org.project.Bar.Frobnicator. # */ # # 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 RandomMethod() 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 RandomMethod() 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 RandomMethod() 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 RandomMethod() 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 (¶mv[0], TYPE_ORG_PROJECT_BAR_FROBNICATOR); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.Bar.Frobnicator. 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 org.project.Bar.Frobnicator. 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 (¶mv[n], TYPE_ORG_PROJECT_BAR_FROBNICATOR); # g_value_set_object (¶mv[n++], skeleton); # g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); # g_value_set_object (¶mv[n++], invocation); # if (info->pass_fdlist) # { # #ifdef G_OS_UNIX # g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); # g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); # g_value_set_variant (¶mv[n], child); # n++; # } # else # g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.project.Bar.Frobnicator. # * # * 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)); # } # Error: ok 39 __main__.TestCodegen.test_unix_fd_types_and_annotations # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmphd4gwgl7 # /tmp/tmphd4gwgl7/tmp4bw5mhcr.xml: # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmphd4gwgl7/tmp4bw5mhcr.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 # # 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/tmphd4gwgl7/tmpboos856i.xml: # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmphd4gwgl7/tmpboos856i.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 # # 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/tmphd4gwgl7/tmpjzzn24b4.xml: # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmphd4gwgl7/tmpjzzn24b4.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 # # 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 SUMMARY: total=291; passed=290; skipped=1; failed=0; user=193.0s; system=95.2s; maxrss=150932 + userdel glib2-test DURATION: 281